[Golang]文字列の先頭一文字を取り出す[memo]

マルチバイトを考えない場合はs[0]とかで済みますが、マルチバイトを考えたい場合は別です。 単純な方法: []runeにキャストする  []runeにキャストすることで、マルチバイトだろうがそうでなかろうが文字列は全てr …

[Golang]runeのバイト長を調べる[memo]

 rune一文字のバイト長を調べる方法がちょっとわからなかったので、調べました。…標準ライブラリにあった…そりゃそうだよね…orz utf8パッケージを使う  utf8パッケージにRuneLenメソッドがあるのでそこにバ …

[Golang]typeにより構造体のスライスに関数を追加することができる[memo]

 Golangのtypeは便利なもので、これによりある型に別の名前を付けたり、スライスに別名を付けて関数を追加できる。  今回はスライスに関数を追加するメモ。 スライス自体を別の型として扱うことができる  type NA …

[Golang]io.Writerとio.Readerがいる処理のテストにはbytes.Buffer[memo]

 io.Writerやio.Readerを引数に取る処理において、一時ファイルを作る処理を書いたり、実行後にその内容を確認するのが面倒、という場合、Bytes.Bufferが便利である。 bytes.Bufferとは   …

[Golang]同一文字列を繰り返して出力する[memo]

 ある文字列を任意回数分繰り返して変数に代入したくなり、探したらそれ用の関数があったのでメモです。  stringsパッケージはいろいろと便利ですね。 strings.Repeat関数で繰り返せる rep := stri …

[Golang]import cycle not allowedについて[memo]

 自分用のパッケージを分けて便利に使おうとしていたところ、思わぬエラーが出たので、メモです。 import cycle not allowedとは  循環参照が生じているよ、というエラーです。  要するにパッケージAでパ …

[Golang]byte配列をmapのkeyとして用いる[memo]

 byte配列をmapのkeyにするのは通常では無理ですから、何らかの形でstringに変換してkeyとして使います。 hexパッケージを使う  安定していそうで、かつ視認性も高いのがhexパッケージを用いる方法です。1 …