我最近一直使用Ruby进行编码,并且来自Python,据我所知,单引号和双引号对代码的工作方式没有任何影响.
我转到Ruby看看它是如何工作的,并调查Ruby和Python之间的相似之处.
我曾使用单引号字符串并注意到这一点:
hello = 'hello' x = '#{hello} world!' puts x
它返回'#{hello} world!'
而不是'hello world!'
.
注意到这一点后,我尝试了双引号,问题得到解决.现在我不确定为什么会这样.
单引号和双引号会改变这个还是因为我的编辑器(Sublime text 3)?如果它在以前的版本中工作方式不同,我也使用Ruby 2.0版.
在Ruby中,双引号被内插,这意味着代码#{}
被评估为Ruby.单引号被视为文字(意味着不评估代码).
var = "hello" "#{var} world" #=> "hello world" '#{var} world' #=> "#{var} world"
对于一些特殊的魔术,Ruby还提供了另一种创建字符串的方法:
%Q() # behaves like double quotes %q() # behaves like single quotes
例如:
%Q(#{var} world) #=> "hello world" %q(#{var} world) #=> "#{var} world"