Go言語100Tips ありがちなミスを把握し、実装を最適化する の No.36 〜 No.41 まで読んだ。第5章 文字列
No.36, 37 はルーンの話。そういえば、ルーンの操作は今までそれほどやったことがなかった。今のプロダクトでは文字の操作はそれほど多くないからかもしれない。この辺りは、気を抜くとバグを踏みやすい。ルーンなのかバイトなのか。文字を扱う時は意識して取り扱わなければならない。
No.38 の TrimRignt / TrimLeft も使ったことがない気がする。TrimSuffix / TrimPrefix との違いはしっかり覚えておこう。
No.39 は 文字の連結。連結も今はそれほど使うタイミングがない気がする。連結する時のパフォーマンスはどの言語でも話題になると思う。たくさん連結する時は、strings.Builder を使うことと、競合に気をつけることを覚えておこう。
No.40 は無駄な文字列変換。[]byte <--> string このパターンはよくある。これが出てきた時は、無駄な変換になっていないか、よく検討しよう。
No. 41 はメモリリーク。部分文字列操作で簡単にメモリリークを発生させることができることは以前に出てきた話だ。strings.Clone という便利なもので防げることを覚えておこう。
意外と今現在は文字列操作していないことに気づいたが、人が使うソフトウェアに文字列操作はつきものなので、これから出てきた時にあわてないようにしたい。