カスタム型の拡張中にメソッドを保持する
JSON アンマーシャリングの名前付き型を操作しているときに、基礎となるタイプ。たとえば、time.Time から派生した名前付き型 StartTime を定義し、その Date() メソッドにアクセスしようとします。
この制限を克服して、元のメソッドを維持しながら既存の型にメソッドを追加するには、既存のタイプを埋め込みます。埋め込みは、埋め込まれた匿名型から新しい型にフィールドとメソッドをプロモートする便利な方法を提供します。
例:
type StartTime struct { time.Time }
このスニペットでは、time.Time 型を匿名で埋め込みます。開始時間内に。 Go の構造体型の仕様によれば、匿名フィールド内のすべてのフィールドとメソッドはプロモートされ、外側の型から直接アクセスできます。
これで、Date() やその他の時間メソッドをシームレスに呼び出すことができます。 StartTime のインスタンスを使用する .Time。このアプローチにより、基本型の元の機能を維持しながら、拡張機能を備えた名前付き型を作成できます。
以上が既存のメソッドを維持しながら Go でカスタム型を拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。