Golang で印刷せずに文字列をフォーマットする

Jay Singh 2022年8月26日
Golang で印刷せずに文字列をフォーマットする

Printf は、間違いなく、文字列としてフォーマットされた変数の最も一般的な実装です。Golang には、文字列を印刷せずにフォーマットする簡単な手法があります。

Go の fmt パッケージの Sprintf() 関数を使用してこれを行うことができます。Printf()Sprintf() の唯一の違いは、Printf() がメッセージをフォーマットして印刷するのに対し、Sprintf() は単にメッセージをフォーマットすることです。

Golang で Sprintf() 関数を使用して文字列をフォーマットする

フォーマット関数は、送信されたフォーマット指定子に基づいて文字列をフォーマットします。

package main

import (
    "fmt"
)

func main() {
    name := "Jay"
    age := 23

    res := fmt.Sprintf("%s is %d years old", name, age)
    fmt.Println(res)
}

出力:

Jay is 23 years old

もう 1つの例は、fmt パッケージの sprintf() メソッドが文字列をフォーマットし、出力文字列を返すことです。

package main

import (
    "fmt"
)

func main() {
    name := "Jay"
    country := "India"

    str := fmt.Sprintf("%s is from %s\n", name, country)

    fmt.Println(str)

    name = "Mike"
    age := 20

    str = fmt.Sprintf("%s is %d\n", name, age)

    fmt.Println(str)
}

出力:

Jay is from India

Mike is 20

この最後の例は、フォーマット指定子を再配置する方法を示しています。

package main

import (
	"fmt"
)

func main() {
	a := 2
	b := 3
	c := 4

	res := fmt.Sprintf("There are %d grapes, %d bananas, and %d strawberries.", a, b, c)
	fmt.Println(res)
}

出力:

There are 2 grapes, 3 bananas, and 4 strawberries.

関連記事 - Go String