Open1

awesome-go(MAP)

イカフライイカフライ

cmp

リンク

https://github.com/lrita/cmap

要約

  • Goの標準的なmapは同時書き込み/読み込みできない。もし行う場合は sync.Mutexでロック制御しないとだめだが、このライブラリを使うと、複雑な処理を裏側でやってくれる。
  • 以下の場合は速くなるかもしれない(全パターンで速くなるわけではないので注意)
    マップをインメモリ DB のようなものに使用したい場合は、私たちのバージョンを使用するとメリットが得られる可能性があります

気づき

  • goのmapで同時書き込みはだめで、同時読み込みはOKだと勘違いしてた。同時読み書きがだめ(参考)
  • コードリーディング
    • 構造体のフィールド名でtypというものがあった。自分もよくtypeとしたいが、予約語のためできないことが多いので、typはわかりやすくていいかも
    • Testで期待値 vs 結果を assertを使わずに、if条件+t.Errorにしている(参考コード)
    • init済みかを0か1で判断しているコード(参考コード)