Golangを書いている時に、ワンライナーでbooleanのポインタを実装したいと考えていたら出会ってしまった悲しき化け物を紹介します。
ワンライナーでbooleanのポインタを実装
ある日、Golangを書いているときにbooleanのポインターをワンライナーで実装したいという願望が生まれました。
そこで生まれたのがコイツです。
IsFoo: &[]bool{true}[0]
のように書ければいいのですが、Golangではbooleanのポインタを取ることはできません。IsFoo: &true
どうしてもワンライナーで実装したかったので、booleanのスライスの要素のポインタを取ることで解決しました。
ワンライナー実装の仲間
booleanワンライナー実装は、以下の書き方でも可能です。
IsFoo: aws.Bool(true)
aws-sdk-goを使っているプロジェクトであればこんな書き方もできます。
でもawsを使っている場所でもないのにaws.Boolがいきなり出てきたら違和感がかなりありますね笑。
ちなみに、Githubをaws.Boolで検索するとGolangで46,392ヒットしますが、この中にはawsに関係がないのにaws.Boolが使われている箇所があるようです。ぜひ探してみてください。
まとめ
Golangのbooleanをワンライナーで実装したい時やレビュワーを困らせたい時がありましたら、&[]bool{true}[0]やaws.Bool(true)を使ってみてくだいさい。