ホームページ > バックエンド開発 > Golang > Go で既存の型にカスタム メソッドを追加するにはどうすればよいですか?

Go で既存の型にカスタム メソッドを追加するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-29 10:49:11
オリジナル
236 人が閲覧しました

How Can I Add Custom Methods to Existing Types in Go?

Go で既存の型に新しいメソッドを追加する

Go で既存の型を操作する場合、機能を強化するためにカスタム メソッドで型を拡張する必要が生じる場合があります。ただし、提供されているサンプル コードが示すように、非ローカル型にメソッドを直接追加することは禁止されています。

この制限を克服するには、主に 2 つのアプローチを考慮する必要があります。

1.ラッパー型の定義:

  • 元の型を匿名または埋め込みとして含む新しい構造体型 (例: MyRouter) を作成します。フィールド。
  • 例:

    type MyRouter struct {
      mux.Router // Anonymous field
    }
    
    func (m *MyRouter) F() { ... }
    
    r := &MyRouter{origRouter}
    r.F()
    ログイン後にコピー

2.元の型の埋め込み:

  • 元の型フィールドを新しい構造体型 (例: MyRouter) に埋め込みます。
  • 例:

    type MyRouter struct {
      *mux.Router // Embedded field
    }
    
    func (m *MyRouter) F() { ... }
    
    router := &MyRouter{origRouter}
    router.F()
    ログイン後にコピー

どちらのアプローチでも、既存の型を変更せずに拡張できます。オリジナルパッケージ。新しい型を作成するか、元の型を埋め込むことで、カスタマイズした型のインスタンスを操作できる追加のメソッドを定義できます。

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

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