最佳答案
我有一个带有 *int64
字段的 struct 类型。
type SomeType struct {
SomeField *int64
}
在我的代码中的某个位置,我想声明一个文字(比如,当我知道说的值应该是0,或者指向一个0时,你知道我的意思)
instance := SomeType{
SomeField: &0,
}
除了这个不管用
./main.go:xx: cannot use &0 (type *int) as type *int64 in field value
所以我试了这个
instance := SomeType{
SomeField: &int64(0),
}
但这也不管用
./main.go:xx: cannot take the address of int64(0)
我该怎么做? 我能想到的唯一解决方案就是使用一个占位符变量
var placeholder int64
placeholder = 0
instance := SomeType{
SomeField: &placeholder,
}
注意: 当 &0
是 * int 而不是 *int64
时,&0
语法可以正常工作。编辑: 不,它没有。不好意思。
编辑:
显然我的问题太模棱两可了。我正在寻找一种方法来 字面意思一个 *int64
。这可以在构造函数中使用,也可以用来表示文本结构值,甚至可以作为其他函数的参数。但助手函数或使用不同的类型不是我要寻找的解决方案。