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

它是字符串插值运算符,您可以使用它将表达式插入字符串。您的字符串需要嵌入 " 才能让这个魔法发挥作用,没有 's。它比字符串连接更快更好。

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