Underlying Type
発端は slices.Concat を読んでいる際に見たジェネリクスにある ~
Spec によれば Underlying Type というらしい
code:type.go
type MyInt int // int が underlying type
type MyString string // string が underlying type
構造体は?
code:struct.go
type User struct {
ID int
Name string
}
// 置き換えると type User = struct {...} とも考えられる
struct は struct 自身が underlying type
struct{ID int, Name string}の型リテラルの underlying type は自分自身
[]string, map[string]int, interface{} も型リテラル
code:inherit.go
type MyInt int
type MyIntInt MyInt // int が underlying type
predclaread bool, string, int (int8, unit8, float32...) の underlying type は自分自身
なおメソッドが継承されるのは interface, struct フィールドのみ
資料