1日1%成長するブログ

毎日成長するために仕事/プライベートで得た学びをアウトプットするブログです

Go言語のチュートリアル備忘録 その1 (Pointer, Struct, Slice)

Go言語の理解には公式チュートリアルを進めるのが一番です。

チュートリアルを進めていてここだけは押さえておきたいという要点をまとめていこうと思います。

A Tour of Go 

Pointer

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

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

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

Structs

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

 

構造体をネストさせることで、より複雑な構造を定義することもできる。

masarufuruya.hatenadiary.jp

Pointers to Structs 

Struct Literals

Arrays

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

var a [10]int

Slices

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

リテラルとは?

構造体のSlice

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