35

この操作#{ }は非常に基本的であるため、私のRubyブックはその定義を完全にスキップしています。誰かが説明を提供できますか?

4

3 に答える 3

54

なぜこれが良い質問なのか

適切な検索用語を知らない限り、これはGoogleにとって難しい質問です。#{}演算子は、技術的には文字列リテラル内で式の置換を実行します。

答え

リテラルは、Bashでバッククォートまたは構成が使用されるのと同じ方法で、二重引用符で囲まれた文字列内の#{}補間に使用される演算子です。実用的な観点から、リテラル内の式が評価され、式全体(演算子とそれに含まれる式の両方を含む)がその場で結果に置き換えられます。$()#{}

関連リンク

于 2012-06-03T10:04:17.227 に答える
11

これにより、Rubyコードを文字列内に配置できます。それで:

"three plus three is #{3+3}"

出力します:

「スリープラススリーは6」

これは通常、文字列の連結をいじることなく、変数値を文字列に挿入するために使用されます。

"Your username is #{user}"
于 2012-06-03T09:44:03.683 に答える
6

これは文字列補間演算子であり、式を文字列に挿入するために使用します。この魔法を機能させるには、文字列を「」に埋め込む必要があります。文字列の連結よりもはるかに高速で優れています。

var = "variable"
"this is a string with a #{var} in" => "this is a string with a variable in"
于 2012-06-03T09:43:40.747 に答える