Go言語には継承の考え方はないのですが、構造体に別の構造体のメンバを取り込むことができます。
interfaceでもできることは書いてありますが、構造体に関してはドキュメントに明記がないような気はするけど、以下のリンクあたりに構造体のメンバを使うコード例が書かれています。(※英語なので読むのに時間と体力が必要なので今回は軽めにしておきます。)
http://golang.org/ref/spec#Selectors
ちなみにこの辺りの記述なのかもしれません。
http://golang.org/ref/spec#Composite_literals
サンプルコードです。(リンク先は動作確認ができるようになっています)
http://play.golang.org/p/nNV-jUiygC
package main
import "fmt"
type a struct {
A int
B float32
}
type b struct {
a
C string
D bool
}
func main() {
val := b {C: "abcde", D: true}
val.A = 1
val.B = 2.5
fmt.Printf("b.A = %d\n", val.A)
fmt.Printf("b.B = %f\n", val.B)
fmt.Printf("b.C = %s\n", val.C)
fmt.Printf("b.D = %v\n", val.D)
}
0 件のコメント:
コメントを投稿