kurumi-bioの雑記帳

プログラミング、パソコン、ペット、 犬、お出かけ

初心者のGo言語 その9 <fmt.SprintとSprintf、Sprintln>

こんにちは、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と異なり、文字列の間にも半角空白が追加されています。
また、最後に改行が追加されているため、"]"が別の行に出力されています。

終わりに

使い方が想像できなかったのですが、実際は、痒い所に手が届くみたいな感じなのだと思います。