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上の記事でもあまり見かけないので、ぜひ手に取って読んでみてください。