1
在此處轉到新手。我有兩個結構,父母和孩子。子項包含Parent作爲匿名字段。我想知道如何將該結構傳遞給期望Parent的函數(並且對Child沒有任何意見)。這裏的代碼說明了我想做的事:在Go中傳遞帶有匿名字段的struct
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的魔力聲明()來得到這個工作?
非常好,謝謝。我無法在文檔或其他地方找到任何有關此事的討論。 –
作爲參數傳遞給函數的對象的類型只是匹配它期望的對象的類型。如果期望Parent並且你傳遞了Child,那麼絕大多數嚴格類型的語言沒有辦法處理它,你不應該期望它能夠工作。那麼這個問題就變成了「我如何讓父母離開孩子」,並且我只是猜測一下就知道了。 –