自由気ままにブログ

地方零細企業プログラマがひっそりとなにかしています。

Goでは、map(連想配列)をあまり使わないのが、正解らしいです。

f:id:nono138:20200421225921p:plain

こんにちは、こんばんは、138nonoです。

Goを触り始めてから、早1ヶ月半程経ちます。
自社開発のシステムを少しづつやりながら、勉強をしております。

現在、使用している、おすすめの参考書があります。

実務を意識し、普通の参考書では、なかなか教えてくれないGo特有の書き方・心得など、書いてあります
↓それがこちらの参考書になります。 
*弊社に置いてある、参考書は第1版なので、少し内容が変わっているかもしれないのは、ご了承下さい。
こちらの参考書の執筆者の一人であり、私もGitHubのsqlite3でお世話になったmattnさんもいます

この参考書の中に、[mapは避ける]との記載が

フィールドの値の関係が分かりやすくなり、typeをコンパイル時に検出できるなどのメリットがあります。
Goでは、型のある言語で可能な限り、struct(構造体)で方を定義するのが吉です。
また、メソッドを追加できるのも、利点の一つですね

mapを使用し、並行処理で同時アクセスした時、変な値を読み込んだり、プログラムをクラッシュしたりする可能性があります

mapを扱う時には、排他制御に気を付ける必要があります。
その際に、syncパッケージのRW Mutexを使うのが定石になります。


こちらの参考書を使用する場合は、ある程度の基礎が必要になります。

↑私はこちらの参考書である程度の基礎を学びました。

私もmapで書いたプログラムで、想像と違った値が入って苦労しました。
書く前に、この参考書に出会いたかったなと思います

もし、余裕があれば、今書いているプログラムを改善したいなと思います。

最近、mapの概念も理解してきた気がするので(気がするだけ)、スクリプト言語も触って見たいなと思う今日この頃です。