如何使用指针类型的匿名成员初始化Go结构?

时间:2016-02-13 04:18:42

标签: go struct anonymous

使用匿名成员初始化结构的常规方法如下:

package main

import "fmt"


type AA struct {
        int
        xx string
}

func main() {
        a := &AA{
                int : 1,
                xx : "2",
        }
        fmt.Println(a) // &{1 2}
}

但是,如果类型是指针,则不能再执行此操作

package main

import "fmt"


type AA struct {
        *int
        xx string
}

func main() {
        i := 1
        a := &AA{
                *int : &i,
                xx : "2",
        }
        fmt.Println(a)
}
// .\hello.go:14: invalid field name *int in struct initializer

还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

*int字段的名称只是int

package main

import "fmt"

type AA struct {
    *int
    xx string
}

func main() {
    i := 1
    a := &AA{
        int: &i,
        xx:  "2",
    }
    fmt.Println(a)
}