19. コンパイルエラーになるもの(3)
■ インタフェースの未実装
type Hex int
func (h Hex) Str() string {
return fmt.Sprintf("%x", int(h))
}
// エラー
var _ fmt.Stringer = Hex(100)
type Stringer interface {
String() string
}
20. コンパイルエラーになるもの(4)
■ 曖昧な記述
type Hoge struct{ N int }
type Piyo struct{ N int }
type Foo struct {
Hoge
Piyo
}
func main() {
f := Foo{Hoge{100}, Piyo{200}}
fmt.Println(f.N) // エラー
fmt.Println(f.Hoge.N) // OK
}