まず、コードにエラーがあります。String
に修正する必要があるため、定義された別のタイプを作成しない限りstring
。
次に、Go では複合構造体を使用できます。これは、既に行ったように、別の構造体に含まれる構造体フィールドに直接アクセスできることを意味します。
これは、構造体フィールドが宣言されているメソッド レシーバーでメソッドを呼び出すことができることを意味します。あなたの例を修正するには、あなたの質問を正しく理解していれば:
package main
import (
"fmt"
)
type A struct {
Number int
}
type B struct{
A
name string
}
func main() {
b := &B{A{1}, "George"}
b.GetValues()
}
func (b B) GetValues() {
fmt.Println(b.Number)
fmt.Println(b.name)
}
以下の例では、struct A
が含まれているため、GetValues メソッドでstruct B
宣言された構造体フィールドを呼び出すことができます。struct A
これは、フィールドstruct B
を継承するためです。struct A
https://play.golang.org/p/B-XJc6jddE