如何在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中分配该(指针)变量的地址:

参考资料:


除非指定给变量,否则指针不可寻址。获取复合文字的地址而不将其分配给变量的能力仅限于结构、数组、切片和映射

要执行您想要执行的操作,必须首先将指针分配给变量,然后才能在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
}