名前付き型のメソッドの呼び出し
Go では、type キーワードを使用して作成された名前付き型は、その基になる型とは異なる型です。その結果、基になる型に属するメソッドを名前付き型で直接呼び出すことはできません。
この問題を解決し、元の機能を維持しながら追加のメソッドで名前付き型を拡張するには、埋め込みの手法を使用できます。 。基になる型を名前付き型内に匿名で埋め込むことにより、埋め込まれた型のメソッドとフィールドが昇格され、名前付き型内でアクセスできるようになります。
たとえば、time.Time をラップする名前付き型 StartTime があるとします。 value:
type StartTime time.Time func (st *StartTime) UnmarshalJSON(b []byte) error {...}
StartTime 型の time.Time のメソッドにアクセスするには、time.Time を匿名で埋め込みます。 StartTime:
type StartTime struct { time.Time }
これで、型に直接定義されているかのように StartTime で Date() などのメソッドを呼び出すことができます:
myStartTime.Date()
このアプローチにより、基になる型の元の機能を保持しながら、名前付き型に追加のメソッドを追加します。
以上がGo で名前付き型の基になる型メソッドを呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。