こんにちは、kurumi-bioです。3回目のブログです。
前回に引き続きGo言語について発信します。
環境
OSバージョン:Windows11 Home 22H2
Go言語のバージョン:go version go1.19.4 windows/amd64
Printing(Integer)
fmtパッケージのPrintingのIntegerについて色々と試してみます。
整数の書式設定だと思います。
Go言語の公式ページのPackagesでfmtパッケージの機能を調べると下記の通り記載されています。
与えられた整数値を2進数、10進数、8進数(プレフィックスあり/なし)、16進数(小文字/大文字)の書式で表示することができるみたいです。
なお、%c,%q,%Uは、ユニコード(文字コード)の書式設定ですので、今回は省きます。
Printf
整数の書式設定を試すためには、表示用の関数を使う必要があります。
同ページの真ん中あたりに"Index"が記載されていて、
出力は、Print,Printf,Printlnの三種類の関数が用意されています。
この三種類の関数で、書式(format)が指定できるPrintf関数で試してみます。
整数値20を2進数、10進数、8進数、16進数にして出力するプログラムです。
例)PrintingTest.go
import "fmt"
func main() {
fmt.Printf("%b %d %o %O %x %X\n",20,20,20,20,20,20)
}
ちょっとわかりずらいですが、各基数で表示されていることがわかります。
20ですと、16進数の大文字小文字の違いがわからないので、
For文を使って0から16までの数値を表示するように変更します。
合わせて、各基数の桁数も指定するようにしました。
例)PrintingLoop.go
import "fmt"
func main() {
for i := 0; i < 17; i++ {
fmt.Printf("%5b %2d %2o %4O %2x %2X\n",i,i,i,i,i,i)
}
}
いかがでしょうか、桁数を指定したことで区切り位置が定まり、かなり見やすくなったと思います。
最後に
書式設定に基数が含まれているのが新鮮でした。
ユニコードも試してみたかったのですが、"code point"がわからなくて、今回は時間切れです。他の書式設定を試しながら"code point"も調べてみたいと思います。