
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Golang の構造体の初期値をnil にしたいときはポインタ型でフィールド変数で定義する - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Golang の構造体の初期値をnil にしたいときはポインタ型でフィールド変数で定義する - Qiita
Golangの初期値 Golangはプリミティブ型にそれぞれ初期値を持っている。 string型 なら"" int型 なら0 ... Golangの初期値 Golangはプリミティブ型にそれぞれ初期値を持っている。 string型 なら"" int型 なら0 など、ゼロ値という名前でそれぞれのプリミティブ型を定義した時になんの値が入っているかが既に決まっている。 しかし、フィールド変数の型をユーザ定義型にしている構造体を扱う場合、単純に構造体のインスタンスを生成してしまうと、ユーザ定義型を遡ってプリミティブ型のゼロ値を代入された構造体が生成され、特定のフィールドだけnil にすることができません。 こうしてしまうと、他のAPIからjson を読み込みたい時などに全てのフィールドに空文字が入ってしまったり、0 が入ってしまったりしてしまうため、あまり良いとは言えません。 解決策 フィールド定義を行う時にユーザ定義型のポインタ型にしましょう。 ポインタ型のゼロ値はnil なので、代入されていないフィールドが自動的にnil に