Ruby 中 #{ } 的含义是什么?

36
操作符#{ }似乎非常基础,以至于我的Ruby书完全跳过了它的定义。能否有人提供一下解释?
3个回答

56

这个问题为什么好

如果你不知道正确的搜索术语,那么这是一个难以在 Google 中搜索到的问题。#{ } 操作符在字符串字面量中执行表达式替换。

答案

#{ } 字面量是用于双引号字符串内插值的操作符,就像反引号或 $() 构造在 Bash 中使用一样。从实际角度来看,字面量内的表达式将被计算,然后整个 #{ } 表达式(包括操作符和它所包含的表达式)将被替换为结果。

相关链接


2
值得注意的是,它也可以在%Q{...}字符串、heredoc字符串、%W{...}数组、反引号命令、%x{...}命令和正则表达式字面量中使用。 - d11wtq
@CodeGnome 是的,除非你已经知道答案,否则几乎不可能让谷歌透露这些信息。 - Toaster

13

它允许您在字符串中嵌入Ruby代码。因此:

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

会输出:

"three plus three is 6"

这通常用于将变量值插入字符串中,而无需操纵字符串连接:

"Your username is #{user}"

6

这是字符串插值运算符,您可以使用它将表达式插入到字符串中。 为了让这个魔法生效,您的字符串需要嵌入在双引号中,不能使用单引号。 它比字符串连接方法更快更好。

var = "variable"
"this is a string with a #{var} in" => "this is a string with a variable in"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接