こんにちは、kurumi-bioです。11回目のブログです。
前回に引き続きGo言語について発信します。
環境
OSバージョン:Windows11 Home 22H2
Go言語のバージョン:go version go1.19.4 windows/amd64
初めに
今回も、fmtパッケージの機能を調査します。
Fmt.Sprint
func Sprint(a ...any) string
デフォルトの書式設定を使用して作成した文字列を返します。
前後が文字列以外の時は、半角空白が追加されます。
<サンプルコード>SprintSample.go
package main import "fmt" import "os" import "io" func main() { s := fmt.Sprint("a", "b", "c", 1, 2, 3, true, false, "e", "f", "g") io.WriteString(os.Stdout, "["+s+"]") }
<実行結果>
"2"と"3"と"true"は、前後が文字列以外(数値とbool値)なので、半角空白が追加されています。
"a"と"b"と"c"および"e"と"f"と"g"は、前後が文字列なので、半角空白が追加されないで連続になっています。
"1"は、前が文字列で、"false"は後ろが文字列なので、半角空白が追加されませんでした。
Fmt.Sprintf
func Sprintf(format string, a ...any) string
指定した書式設定を使用して作成した文字列を返します。
<サンプルコード>SprintfSample.go
package main import "fmt" import "os" import "io" func main() { const i = 15 s := fmt.Sprintf("%d %x %d%x", i, i, i, i) io.WriteString(os.Stdout, "["+s+"]") }
<実行結果>
半角空白が追加されないで、10進数と16進数が出力されています。
Fmt.Sprintln
func Sprintln(a ...any) string
デフォルトの書式設定を使用して作成した文字列を返します。
オペランドの間には常に半角空白が追加され、最後に改行が追加されます。
<サンプルコード>SprintlnSample.go
package main import "fmt" import "os" import "io" func main() { s := fmt.Sprintln("a", "b", "c", 1, 2, 3, true, false, "e", "f", "g") io.WriteString(os.Stdout, "["+s+"]") }
<実行結果>
fmt.Sprintと異なり、文字列の間にも半角空白が追加されています。
また、最後に改行が追加されているため、"]"が別の行に出力されています。
終わりに
使い方が想像できなかったのですが、実際は、痒い所に手が届くみたいな感じなのだと思います。