Golang で印刷せずに文字列をフォーマットする
Jay Singh
2022年8月26日
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.