Ruby中#{}的含义?

Toa*_*ter 25 ruby string

这个操作#{ }看起来非常基础,我的Ruby书完全忽略了它的定义.有人可以提供解释吗?

Tod*_*obs 42

为什么这是一个好问题

除非您知道正确的搜索字词,否则这对谷歌来说是一个棘手的问题.在#{}操作者在技术上执行表达式替换一个内部字符串文字.

答案

#{}文本是用于插值内操作的双引号字符串的同样的方式,反引号或$()结构会在Bash中使用.从实际的角度来看,文本中的表达式被计算,然后整个#{}表达式(包括运算符和它包含的表达式)在结果中原位替换.

相关链接

  • @Colin:那里有symbolhound.com:http://symbolhound.com/?q =%23%7B%7D (4认同)
  • 值得注意的是,它还可以在%Q {...}字符串,heredoc字符串,%W {...}数组,反引号命令,%x {...}命令和Regexp文字中使用。 (2认同)

Sea*_*ean 9

它允许您将Ruby代码放在字符串中.所以:

"three plus three is #{3+3}"
Run Code Online (Sandbox Code Playgroud)

输出:

"三加三是6"

它通常用于将变量值插入字符串,而不必乱用字符串连接:

"Your username is #{user}"
Run Code Online (Sandbox Code Playgroud)


pet*_*ter 5

它是字符串插值运算符,可用于将表达式插入字符串。您的字符串需要嵌入到“中,以使魔术发挥作用,而不是。它比字符串连接要快得多,也更好。

var = "variable"
"this is a string with a #{var} in" => "this is a string with a variable in"
Run Code Online (Sandbox Code Playgroud)