今日とある場所で虫が入り込む瞬間を見た。虫といってもバグの方。それはプログラマ向けの Q&A サイトで始まった。質問の内容はこうだ。 文字列には0または4がだけが含まれる。文字列は 4 から始まり、例えば 440, 44, 40, 4400, 4440 など、これらは正しいとするが 404 は正しくない。今のところ、私は 0 の直後に 4 が現れるかどうかでチェックしている。これは果たして効率的だろうか。 始め僕はこの質問文をちゃんと読んでおらず、正規表現を使ってこれを実装した。 package main import ( "regexp" ) func check(s string) bool { return regexp.MustCompile(`^4+0*$`).MatchString(s) } func main() { for _, tt := range []string{"