1
1

More than 1 year has passed since last update.

【Go】`fmt.Sprintf`で同じ変数を複数の箇所に埋め込みたい

Posted at

概要

Goで文字列に対して変数の値を埋め込みたい場合、fmt.Sprintfの関数を使うことがあると思います。Sprintfの概要については、【Golang】Sprintf関数で文字列を組み立てる方法を解説の記事を参照ください。
今回はこのSprintfで、同じ変数を複数箇所に埋め込む場合、どうするかというのをメモ書きします。(なお、Printfを使う場合でも同様の対応です)

対応方法

Replace all variables in Sprintf with same variableのstackoverflowの記事にある通り、%[1]vのような形式で埋め込む設定のところにindexを付与すれば、実現できます。

実装サンプル

例題として第一著者 第二著者 第三著者という文字列があるとします。この内、「第」の文字と「著者」の文字を、Sprintfを使用して変数で置き換えて文字列を取得します。

package main

import (
	"fmt"
)

func main() {
	result := fmt.Sprintf("%[1]s一%[2]s %[1]s二%[2]s %[1]s三%[2]s", "第", "著者")
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1