Closed Shota-Yukawa closed 9 months ago
structメソッド javaとは違い、構造体のレシーバー(javaではインスタンスメソッド)では、レシーバーの宣言の引数をポインタにするかしないかで、参照渡しかそうでないかをレシーバー側で定義できる。 レシーバーを実行する際は、インスタンス(user.func())のuser部分)がstruct型?でもポインタ型でも、レシーバーの宣言自体で判定されるため、呼び出し元ではポインタかどうかを考慮しなくて良い。 基本的に、go は参照渡しか値渡しかを明示的に宣言できるので、javaのように暗黙的にならない。 (構造体は基本値渡し。参照型は参照渡しである前提)
デフォルトでコンストラクタはないが、それっぽいのをよく作る。 フレームワークとかライブラリで勝手に作ってくれるのありそう
typeはあくまで、型を作成する予約後。構造体でも使っているだけ。
structメソッド javaとは違い、構造体のレシーバー(javaではインスタンスメソッド)では、レシーバーの宣言の引数をポインタにするかしないかで、参照渡しかそうでないかをレシーバー側で定義できる。 レシーバーを実行する際は、インスタンス(user.func())のuser部分)がstruct型?でもポインタ型でも、レシーバーの宣言自体で判定されるため、呼び出し元ではポインタかどうかを考慮しなくて良い。 基本的に、go は参照渡しか値渡しかを明示的に宣言できるので、javaのように暗黙的にならない。 (構造体は基本値渡し。参照型は参照渡しである前提)