golangはじめに他の言語のつもりで比較演算子を使うと想定外の挙動をするということもあったりする。最初テキトウにコードを書いて挙動を確認しようとしていたが後に言語仕様を読めば良いだけだということに気づいた。学び始めの最中に思ったことをメモしておくというのも良いと思ったのでメモしておく。幾つか驚いたことgolangは比較をわりと頑張るタイプの言語のようだった。比較時に呼ばれるメソッドのオーバーライド)をしないかぎり、等値で比較されると思ったが等価だった。true値オブジェクト的な物を作った時に比較が自然に定義されるのでこのような挙動はわりと嬉しい。mapのkeyの評価も同様に行われるので以下の様なコードの実行後のmapの保持する値の数は2。10}:1]mapにアクセスし値が存在しない場合にはzero値が返されるので単にcounterとして使いたい場合に便利。pythonではnamedtupleを利用した時と同様ということを考えると便利。1}もっとも、namedtupleの罠として同じ形状の定義は同じになってしまうという問題があるので同じ挙動というわけではない。値を比較しようとするとコンパイルエラーになる。error後で調べてみると、mapとsliceは比較不能ただしnilとだけ比較可能という感じだった。常にfalseを返す位ならコンパイルエラーにしてしまうというのも、それはそれとして割り切りとしてありなような気がする。