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