7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Go言語で文字列内に変数を入れる方法

Last updated at Posted at 2019-11-14

##やりたい事
PHPで言うところのこれがやりたい。


 $name = '山田太郎';
 $str  = "あなたのお名前は ${name} さんです。";

 echo $str;
 // 結果:あなたのお名前は 山田太郎 さんです。

Sprintfを使えば挿入はできるけど、書式子指定したりとか変数自体は引数に持ってこないといけないとか、ちょっとめんどう(2019-11-15:追記)

##結論
そんなものはなかった

PHPのように、別で用意した変数を何も考えずにそのまま文字列内に突っ込む方法はないようです。悲しい。

##じゃあどうするか
1)+で結合する
2)Print関数などで出力時に結合する (2019-11-15:例として不適切だったので差替え)
2)Sprintf関数などを使用する

###+で結合する

name := "山田太郎"
str  := "あなたのお名前は " + name + " さんです。"

fmt.Print(str)
// 結果:あなたのお名前は 山田太郎 さんです。

PHPでもよく見る形です。

###Sprintf関数などを使用する

name := "山田太郎"
str  := fmt.Sprintf("あなたのお名前は %s さんです。", name)

fmt.Print(str)
// 結果:あなたのお名前は 山田太郎 さんです。

PHPではあまり見ない形。C言語を思い出します。

(srtkkouさんにコメントをいただいてから、こっちの方法を書かないといけないと気付き、差し替えました。ありがとうございます。)


PHPに慣れていたので直接変数の挿入ができないのは、手足をもがれたような気分です。
慣れるまでしばらく頑張ります。

##参考
Golang の文字列内で変数を展開する方法(各種) @ Qiita

7
2
4

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
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?