Pointers 将指针字段指定给强制转换的值
我确信这只是我不知道的语法问题,但这是带有指针字段的结构:Pointers 将指针字段指定给强制转换的值,pointers,go,Pointers,Go,我确信这只是我不知道的语法问题,但这是带有指针字段的结构: type someStruct struct { StringVal string `json:"val_str"` IntVal *int64 `json:"val_int"` } 我试图像这样返回此结构的一个实例,其中aValue是一个int64值,我试图获取指向它的IntVal指针: return someStruct{IntVal: &(int64(aValue))} 我得到这个
type someStruct struct {
StringVal string `json:"val_str"`
IntVal *int64 `json:"val_int"`
}
我试图像这样返回此结构的一个实例,其中aValue
是一个int64
值,我试图获取指向它的IntVal
指针:
return someStruct{IntVal: &(int64(aValue))}
我得到这个错误:
cannot take the address of int64(d)
有没有办法做到这一点?您需要首先将int64分配给一个变量:
aValueTmp := int64(aValue)
return someStruct{IntVal: &aValueTmp}
您需要首先将int64分配给一个变量:
aValueTmp := int64(aValue)
return someStruct{IntVal: &aValueTmp}
最简单的方法是实例化一个变量并给它一个指针。或者在一行中:
return someStruct{
IntVal: func(i int64) *int64 {return &i}(aValue)
}
最简单的方法是实例化一个变量并给它一个指针。或者在一行中:
return someStruct{
IntVal: func(i int64) *int64 {return &i}(aValue)
}