goで texttableを描画するパッケージを書いてみました
goの勉強のため, 以前 Perlで書いたものを移植してみました。
特に並列処理すべき部分なんかもなかったので goらしさは 0です。
サンプルコード
マルチバイト文字や改行には対応しています。全角幅の文字幅の取得には
@mattn_jpさんの go-runewidthを利用しました.
package main import "github.com/syohex/go-texttable" import "fmt" func main() { tbl := &texttable.TextTable{} tbl.SetHeader("プログラミング言語\n(Programming Language)", "よみがな\n(Yomigana)", "作者\n(Author)") tbl.AddRow("Python", "ぱいそん", "グイド・ヴァンロッサム") tbl.AddRow("Perl", "ぱーる", "ラリーウォール") tbl.AddRow("Ruby", "るびぃ", "まつもとゆきひろ") tbl.AddRow("Erlang", "あーらん", "ジョーアームストロング") tbl.AddRow("D言語", "でぃーげんご", "ウォルター・ブライト") fmt.Println(tbl.Draw()) }
おわりに
いろいろ気になる部分があるのでもっと勉強して直していきたい
ですね。Goは LLにはないめんどくささも多々ありますが、良いと思える
部分もたくさんあるので、ぜひ身につけたいですね。