【Golang】Sprintf関数で文字列を組み立てる方法を解説

GolangのSprintf関数とは

GolangのSprintfは、fmtパッケージに属している関数で、フォーマット指定子に従ってフォーマットした結果の文字列を返します。

上記の説明だと少しわかりづらいので噛み砕いて言いますと、文字列の中に変数を埋め込むことができ、その結果新しい文字列を返すということです。

また、その変数がstring型だとフォーマット指定子(埋め込む場所を示す値)は「%s」、int型だとフォーマット指定子は「%d」となります。

// 変数が文字列の場合
fmt.Sprintf("My name is %s.", 変数)

// 変数が数値の場合
fmt.Sprintf("I'm %d", 変数)

Sprintf関数の具体的なコード例

name(string型)とage(int型)という変数を文字列の中に埋め込み、新しく取得した文字列を出力する処理をしてみます。

package main

import (
  "fmt"
)

func main() {
  name := "Tanaka"
  age := 20
	
  text1 := fmt.Sprintf("My name is %s.", name)   // string型変数の埋め込み
  text2 := fmt.Sprintf("I'm %d years old.", age) // int型変数の埋め込み

  fmt.Println(text1)
  fmt.Println(text2)
}

実行結果は以下の通り。

My name is Tanaka.
I'm 20 years old.

もし、フォーマット指定子を逆にすると、以下のように指定する変数のデータ型が違うと怒られしまうので注意が必要です。

My name is %!d(string=Tanaka).
I'm %!s(int=20) years old.
タイトルとURLをコピーしました