masarufuruyaのブログ

毎日学んだ知見をアウトプットするブログ

Tour of Go (structs, slice and maps)の覚え書き

 

Pointers

  • Goはポインタを使う。ポインタは変数のメモリアドレスを指す
  • &オペレータはそのオペランドへのポインタを引き出す
  • *オペレータはポインタの指す先の変数を示す

オペランドとオペレータとは?

  • オペランド(operand)は演算の対象となる値や変数、定数のこと
  • オペレータ(operator)は+や-等の演算子のこと

Structs

  • struct(構造体)はフィールド(field)の集まり
  • Goにはクラスが存在しないが、似た役割として構造体が用意されている

Pointers to Structs 

Struct Literals

Arrays

配列は固定長。[n]T型は型Tのn個の変数の配列を表す

var a [10]int

Slices

  • 可変長配列がない代わりに実装されたもの。[]Tは型Tのスライスを表す。
  • スライスは配列への参照のようなもの。スライスの値を変更するとその元の配列の値も変わる

リテラルとは?

構造体のSlice

  • よくあるUserの構造体を複数スライスで持つ場合に特定の構造体のみ初期化したい時は次のように書く