Closed7

go メモ

こまきちこまきち

defer... 該当の関数が実行した後に実行することを宣言する
deferが複数あった場合は、後ろから実行される

ファイルを開いた後に、closeする処理に使ったりする

こまきちこまきち

struct

大文字で宣言する。小文字で宣言するとprivate扱いになる。

type Hoge struct {
  X, Y  int
  Z  string
}

以下は同じ出力結果になる。

struct1 := Hoge{}
||
var struct2 Hoge
struct3 := new(Hoge)
||
struct4 := &Hoge{}    // こっちの方がポインタとわかりやすい

値の更新とポインタ型

func changeValue(v Hoge) {
  v.X = 1000
}

func changeValue2(v *Hoge) {
  v.X = 1000.  // 本来は(*v).Xだけど、structならこの書き方でも参照できる
}

func main() {
  v := Hoge{1, 2, "test"}
  changeValue(v).           // {1, 2, "test"}

  y := &Hoge{1, 2, "test"}
  changeValue2(y)          // &{1000, 2, "test"}
}
このスクラップは2023/12/23にクローズされました