Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pointers 将指针字段指定给强制转换的值_Pointers_Go - Fatal编程技术网

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)
}