该操作#{ }
似乎非常基础,以至于我的 Ruby 书完全跳过了它的定义。有人可以提供解释吗?
问问题
24956 次
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 回答