Goのnewを使った匿名の構造体(Anonymous struct)の初期化

2022-03-14  /  Go

json.Unmarshal などと使用するときに値はゼロ値で良くて、ポインタだけ取得したいというケースがあります。そういう時は初期化に new を使えば楽だなと気づいたのでした。

今までやっていた方法

匿名の構造体でも & を使った初期化とポインタの取得ができるので以下のように記述していました。

	s2 := &struct {
		value string
	}{}

構造体を記述するための {} と 初期化のための {} が存在するのでちょっと冗長な記述だなと思っていました。

new を使う方法

new を使うと以下のようになります。

	s3 := new(struct {
		value string
	})

記述量自体はむしろ数文字増えているのですが 末尾の }{} の部分が無くなるので自分はこっちが好みだなぁと思いました。あくまで好みです。

コード: https://go.dev/play/p/mUyG2KGyq4b

Published: 2022-03-14  /  Tags: Go