ホームページ > バックエンド開発 > Golang > 既存のメソッドを維持しながら Go でカスタム型を拡張するにはどうすればよいですか?

既存のメソッドを維持しながら Go でカスタム型を拡張するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-07 09:50:11
オリジナル
1067 人が閲覧しました

How Can I Extend Custom Types in Go While Preserving Existing Methods?

カスタム型の拡張中にメソッドを保持する

JSON アンマーシャリングの名前付き型を操作しているときに、基礎となるタイプ。たとえば、time.Time から派生した名前付き型 StartTime を定義し、その Date() メソッドにアクセスしようとします。

この制限を克服して、元のメソッドを維持しながら既存の型にメソッドを追加するには、既存のタイプを埋め込みます。埋め込みは、埋め込まれた匿名型から新しい型にフィールドとメソッドをプロモートする便利な方法を提供します。

例:

type StartTime struct {
    time.Time
}
ログイン後にコピー

このスニペットでは、time.Time 型を匿名で埋め込みます。開始時間内に。 Go の構造体型の仕様によれば、匿名フィールド内のすべてのフィールドとメソッドはプロモートされ、外側の型から直接アクセスできます。

これで、Date() やその他の時間メソッドをシームレスに呼び出すことができます。 StartTime のインスタンスを使用する .Time。このアプローチにより、基本型の元の機能を維持しながら、拡張機能を備えた名前付き型を作成できます。

以上が既存のメソッドを維持しながら Go でカスタム型を拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート