構造体リテラルでブール ポインターを True に設定する
質問:
関数にはブール値へのポインタ。追加の変数を導入せずに、構造体リテラルを使用してフィールドを true に設定できますか?
答え:
はい、可能ですが、理想的ではありません:
h := handler{is: &[]bool{true}[0]}
このソリューションは、単一のブール値 true を持つスライスを作成し、その最初の要素にインデックスを付け、そのアドレスをフィールドです。新しい変数は回避されますが、ボイラープレートとバッキング配列の永続化には欠点があります。
より良い解決策:
func newTrue() *bool { b := true return &b }
h := handler{is: newTrue()}
h := handler{is: func() *bool { b := true; return &b }()}
h := handler{is: func(b bool) *bool { return &b }(true)}
その他のオプションについては、「Go でリテラル *int64 を実行するにはどうすればよいですか?」を参照してください。
以上がGo Struct リテラルは追加の変数を使用せずに真のブール ポインターを直接割り当てることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。