Goでは、処理する構造体/データ型とは別にメソッドを定義することができます。メソッド定義などを配置する柔軟性を意味するだけですか?Goメソッドを構造体定義から定義する利点は何ですか?
Goの構造体/メソッドのシステムが猿のパッチ適用と比較されていると聞いたことがありますが、正しく理解すれば、メソッドは既存の型(構造体)に追加できません。タイプ。つまりとにかくあなたのコントロール下にあるタイプだけをサルにパッチすることができます。または私は何かを逃している?
タイプとそのメソッドを別々のソースファイル(または同じソースファイルの異なる部分)に定義するとしますか?
既存の型にメソッドを追加する方法はわかりません。既存の型は "uint"であり、正しく理解すれば "追加"は "uint" -sでは機能しません。 – Aivar
ええ、ショートカットを取ったので、パッケージ外の型にメソッドを追加することはできませんが、既存の型に基づいて新しい型を定義し、この型にメソッドを追加できます。これらのメソッドを使用するために、基底型を拡張型にキャストするのは簡単です(たとえば、Goの作成者がソートパッケージ内のStringSlice型で行ったもの)。 – mna