今回は、構造体(struct)についてまとめます。
構造体(struct)とは
- カスタムデータタイプを定義するときに使います。
- フィールドの集合体であり、フィールドのコンテナです。
- フィールドデータだけ持っていてメソッドは持ちません。
struct宣言
package main
import "fmt"
// struct定義
type person struct {
name string
age int
}
- 構造体の定義にはtype文を使います。
- 上記はnameとageをもつperson構造体を定義しています。
- person構造体をパッケージ外部から使えるようにするためにはpersonではなくPersonに変更すればできます。
structオブジェクトの生成
// 方法1
var p1 person
p1 = person{"twan1", 23}
// 方法2
p2 := person{name: "twan2", age: 43}
// 方法3
p4 := person{}
p4.name = "twan"
p4.age = 30
// 方法4
p5 := new(person)
p5.name = "twan4"
p5.age = 33
- オブジェクトを生成する方法は上記のように3つあります(自分が調べたところは。)
- 方法1:構造体の変数を宣言し、{}を利用して値をセットする。
- 方法2:宣言と同時に値をセットする(このときの代入として「:=」を使っています。)
- 方法3:構造体のフィールドをドットでアクセスしてセットする。
- 方法4:Goの内装関数であるnew()を使って生成する。
- new()を使うと全てのフィールドがZero Valueに初期化される。
- structオブジェクトを他の関数にパラメータとして渡すとPass by Valueで渡される。(Javaのクラスの場合、Pass by Referance)
