タグ

ブックマーク / qiita.com/m_green14 (1)

  • Go で関数に渡したポインタの値を変更するには - Qiita

    package main func change(s *string) { *s = "changed" } func main() { s := "hoge" change(&s) fmt.Println(s) } 解説 Go ではポインタを扱えることができますが、 & や * をどうつけたらいいか、よくわからなくなってしまいがちです。 まずは一旦整理してみます。 構文 整理すると、2 種類の構文があるのではないかと思います。 演算子として利用される場合 & は値型変数からポインタ(メモリのアドレス)型変数を取得する演算子 * はポインタ型変数から値型変数を取得する演算子 var tmp string = "tmp" // ポインタ tmpPointer := &hoge // 値 tmpValue := *tmpPointer fmt.Println(tmpPointer) // 0x

    Go で関数に渡したポインタの値を変更するには - Qiita
    mfham
    mfham 2020/12/20
  • 1