Software Designに「Goでテキスト変換をしよう(前編)」を寄稿しました
March 19, 2020
現在、メルカリグループのエンジニアでSoftware Designの「作品で魅せるGoプログラミング」という連載を行っています。 筆者もSoftware Design 4月号に、「Goでテキスト変換をしよう(前編)」という記事を寄稿させて頂きました。 ここでは寄稿した記事の内容の紹介や来月号に寄稿予定の内容にも軽く触れたいと思います。
Goでテキスト変換をしよう(前編)
4月号では、テキスト変換を行う目的から標準で用意されているstrings
パッケージやbytes
パッケージ、regexp
パッケージなどを使った簡単なテキスト変換の解説を行っています。短めの文字列やバイト列のちょっとした置換を行うのに向いている関数や型を紹介します。
strings
パッケージやbytes
パッケージを用いた変換では、大量のデータを処理したいときに不向きです。そこでio.Reader
型やio.Writer
型のまま、変換処理の行えるtransform.Transformer
インタフェースを用いたテキスト変換の方法について解説します。なお、transform.Transformer
型は、準標準パッケージであるgolang.org/x/text/transform
パッケージで提供されている型です。
また、golang.org/x/text
パッケージのサブパッケージでは、transform.Transformer
インタフェースを実装したShift_JISやEUC-JPなどの文字コードを扱う型や全角半角を扱う型が提供されています。4月号では、その使い方についても解説しています。
Goでテキスト変換をしよう(後編)
4月号のタイトルである”Goでテキスト変換をしよう(前編)”から分かるように、5月号では後編の記事を寄稿する予定です。5月号ではtransform.Transformer
インタフェースを扱う上で避けて取れないUnicodeやUTF-8の話、Unicodeの正規化や自分でtransform.Transformer
インタフェースを実装する方法について、具体例を挙げながら解説しています。
transform.Transformer
インタフェースの話は、Web上の記事でもあまり見かけないので、ぜひ手に取って読んでみてください。