在Go中传递带有匿名字段的struct

时间:2014-02-07 23:44:59

标签: struct go

在这里新手。我有两个结构,父母和孩子。 Child包含Parent作为匿名字段。我想知道如何将该结构传递给期望父级的函数(并且对Child没有任何了解)。这是代码,说明了我想要做的事情:

package main

import "fmt"

type Parent struct {
    Dad string
}

type Child struct {
    Parent
    Son string
}

func myfunc(data Parent) {
    fmt.Printf("Dad is %s\n", data.Dad)
}

func main() {
    var data Child
    data.Dad = "pappy"
    data.Son = "sonny"
    myfunc(data)
}

myfunc()的神奇宣言是什么让它起作用?

1 个答案:

答案 0 :(得分:3)

您的代码works on the Go playground如果您只是将倒数第二行更改为:

myfunc(data.Parent)

由于您说myfuncmyfunc课程一无所知,因此您不应期望能够改变Child