ビューティフルコード第一章のマッチャを Go 言語にしてみた


ちょっとひっかかったのは文字列の後に \0 が付いてないので * のチェックでアクセスがはみ出る所ぐらい
do~while で書いてあったものを if cond { break } に書き換えたのでそのへんがエレガントでなくなっている
スライスを使っているので効率はほとんど悪くなってないはず(Go 言語では string は uint8 のスライス)
というか元コードが C のイディオム *ptr++ (ptrが指していた内容を参照しつつ、ptrをインクリメントする) を多用していて、それが使えないので地味にコードが膨れる