如何在golang中初始化指向指针的指针?
如何使用双指针字段初始化结构? 我正在尝试初始化结构,如下所示:如何在golang中初始化指向指针的指针?,go,Go,如何使用双指针字段初始化结构? 我正在尝试初始化结构,如下所示: type atype struct { val string } a := &struct { StringValue string Pointer **atype }{ StringValue: "FOO", //this is the relevant bit Pointer : &(&atype{ val: "test" }) } 这给了我
type atype struct {
val string
}
a := &struct {
StringValue string
Pointer **atype
}{
StringValue: "FOO",
//this is the relevant bit
Pointer : &(&atype{
val: "test"
})
}
这给了我一个错误:无效指针类型**basicAppConfig for composite literal
我的逻辑有什么问题?我将指针指向一个指向该值的指针
我也试着用
reflect.PtrTo(&atype{
val: "string"
})
如果不成功…指针不可寻址,除非分配给变量。获取复合文字的地址而不将其分配给变量的能力仅限于结构、数组、切片和映射 要执行您想要执行的操作,必须首先将指针分配给变量,然后才能在struct literal中分配该(指针)变量的地址: 参考资料:
new
。如果您可以只初始化第一个指针,将指向的指针设为零,则可以随心所欲地使用new
。
package main
type atype struct {
val string
}
func main() {
at := &atype{
val: "test",
}
a := &struct {
StringValue string
Pointer **atype
}{
StringValue: "FOO",
Pointer: &at,
}
_ = a
}