Golang – 構造体(struct)

今回は、構造体(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)

コメントを残す