Go言語のチュートリアル備忘録 その1 (Pointer, Struct, Slice)
Go言語の理解には公式チュートリアルを進めるのが一番です。
チュートリアルを進めていてここだけは押さえておきたいという要点をまとめていこうと思います。
Pointer
- Goはポインタを使う。ポインタは変数のメモリアドレスを指す
- &オペレータはそのオペランドへのポインタを引き出す
- *オペレータはポインタの指す先の変数を示す
オペランドとオペレータとは?
Structs
- struct(構造体)はフィールド(field)の集まり
- Goにはクラスが存在しないが、似た役割として構造体が用意されている
構造体をネストさせることで、より複雑な構造を定義することもできる。
Pointers to Structs
Struct Literals
Arrays
配列は固定長。[n]T型は型Tのn個の変数の配列を表す
var a [10]int
Slices
- 可変長配列がない代わりに実装されたもの。[]Tは型Tのスライスを表す。
- スライスは配列への参照のようなもの。スライスの値を変更するとその元の配列の値も変わる
リテラルとは?
- ソースコードに直接べた書きした数値や文字列のこと
構造体のSlice
- よくあるUserの構造体を複数スライスで持つ場合に特定の構造体のみ初期化したい時は次のように書く