Go 言語には従来のクラスやオブジェクトはありませんが、構造体とメソッドが使用されます。クラス メソッドは型にバインドされており、型全体を操作するために使用されます。オブジェクト メソッドはオブジェクト インスタンスにバインドされており、特定のインスタンスを操作するために使用されます。この 2 つのレシーバは異なります。クラス メソッドのレシーバは型ですが、オブジェクト メソッドのレシーバはオブジェクト インスタンス ポインタです。命名規則にも違いがあります。クラス メソッドは大文字で始まり、オブジェクト メソッドは小文字で始まります。
Go 言語には従来の意味でのクラスとオブジェクトはありませんが、クラスとオブジェクトの動作をシミュレートするための構造体とメソッド。 Go 言語を効果的に使用するには、クラス メソッドとオブジェクト メソッドを理解することが重要です。
クラス メソッド
クラス メソッドは、特定のオブジェクト インスタンスではなく、型自体にバインドされます。これらは通常、新しいインスタンスの作成など、型全体を操作または初期化するために使用されます。 func
キーワードを使用してクラス メソッドを宣言し、慣例として最初の文字を大文字にしてクラス メソッドであることを示します。
type Person struct { name string age int } func (p Person) New(name string, age int) Person { return Person{name, age} }
オブジェクト メソッド
Object メソッドはメソッド レシーバーにバインドされており、これにより特定のオブジェクト インスタンスに対して操作を実行できるようになります。 func
キーワードを使用して、小文字で始まるオブジェクト メソッドを宣言します。
type Person struct { name string age int } func (p *Person) GetName() string { return p.name }
実用的なケース
次に、クラスの使用例を示します。メソッドとオブジェクト メソッドの簡単な例:
func main() { // 使用类方法创建 Person 实例 p := Person.New("Alice", 25) // 使用对象方法获取 Person 实例的姓名 name := p.GetName() fmt.Println(name) // 输出: Alice }
違い
クラス メソッドとオブジェクト メソッドの最も重要な違いは、レシーバーです:
命名規則
以上がGo言語のクラスメソッドとオブジェクトメソッドを深く理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。