Go 言語にはコンストラクターがありません。構造化言語としての Go 言語には、オブジェクト指向言語のコンストラクターがありませんが、オブジェクト指向言語のコンストラクターと同様の効果は、構造の初期化プロセスを使用して、オブジェクト指向言語をシミュレートする方法で実現できます。コンストラクターの実装。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
コンストラクターは特別なメソッドで、主にオブジェクトの作成時にオブジェクトを初期化するために使用されます。つまり、オブジェクトのメンバー変数に初期値を代入します。特殊クラスは複数のコンストラクターを持つことができ、パラメーターの数またはパラメーターのタイプ、つまりコンストラクターのオーバーロードに従って区別できます。
構造化言語として、Golang にはオブジェクト指向言語のコンストラクター メソッドがありませんが、Golang はオブジェクト指向プログラミングのアイデアや継承などのメソッド、C のようなコンストラクターを実装できます。
struct
は値型であるため、構造がより複雑な場合、value copy
のパフォーマンスのオーバーヘッドが比較的大きくなるため、コンストラクターは を返します。構造体ボディポインタ
型。
#仕様
構造体を作成および初期化する複数の方法 - コンストラクターのオーバーロードをシミュレートする
構造体を使用して猫の特性を記述する場合、次のことが可能です。色と名前に従ってさまざまな種類の猫にすることができます。その後、さまざまな色と名前が構造体のフィールドになります。同時に、色と名前を使用してさまざまな種類の猫のインスタンスを構築できます。このプロセスでは、次のことができます。次のコードを参照してください。
type Cat struct { Color string Name string } func NewCatByName(name string) *Cat { return &Cat{ Name: name, } } func NewCatByColor(color string) *Cat { return &Cat{ Color: color, } }コードの説明は次のとおりです。
親子関係を持つ構造体の構築と初期化 - 親構築呼び出しのシミュレーション
黒猫は猫の一種です。 「黒猫は黒猫の総称です。この二つの概念を同時に説明するときに黒猫が派生します。黒猫は猫の種類に由来します。猫と黒猫の関係を構造で説明する場合、猫の構造は猫の種類に由来します。」は black cat に埋め込まれています。cat (BlackCat) では、black cat が cat の特性を持っていることを意味し、2 つの異なるコンストラクターを使用して black cat と cat の 2 つの構造体インスタンスをそれぞれ構築します。次のコードを参照してください:
type Cat struct { Color string Name string } type BlackCat struct { Cat // 嵌入Cat, 类似于派生 } // “构造基类” func NewCat(name string) *Cat { return &Cat{ Name: name, } } // “构造子类” func NewBlackCat(color string) *BlackCat { cat := &BlackCat{} cat.Color = color return cat }コードの説明 次のように:
以上がGo 言語にはコンストラクターがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。