ホームページ >バックエンド開発 >Golang >Go で名前付き型の基になる型メソッドを呼び出すにはどうすればよいですか?

Go で名前付き型の基になる型メソッドを呼び出すにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-06 04:43:09638ブラウズ

How Can I Call Underlying Type Methods on a Named Type in Go?

名前付き型のメソッドの呼び出し

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。