是否有一个特定的时间我应该使用“vs”?
我大部分时间都在使用单引号,因为它更容易输入,但我不确定我是否应该这样做。
例如get "user/new"和get "user/new"
是否有一个特定的时间我应该使用“vs”?
我大部分时间都在使用单引号,因为它更容易输入,但我不确定我是否应该这样做。
例如get "user/new"和get "user/new"
当前回答
要回答你的问题,当你想要做字符串插值时,你必须使用"":
a = 2
puts "#{a}"
否则使用简单的引号。
如果你想知道在性能方面是否有差异,在StackOverflow上有一个很好的问题。
如果您真的不熟悉RoR,我强烈建议您选择一本像样的Ruby书籍来学习这门语言的基础知识。它将帮助您理解您正在做的事情(并且将使您不再认为Rails是神奇的)。我个人推荐The Well grounded Rubyist。
其他回答
要回答你的问题,当你想要做字符串插值时,你必须使用"":
a = 2
puts "#{a}"
否则使用简单的引号。
如果你想知道在性能方面是否有差异,在StackOverflow上有一个很好的问题。
如果您真的不熟悉RoR,我强烈建议您选择一本像样的Ruby书籍来学习这门语言的基础知识。它将帮助您理解您正在做的事情(并且将使您不再认为Rails是神奇的)。我个人推荐The Well grounded Rubyist。
" "允许你做字符串插值,例如:
world_type = 'Mars'
"Hello #{world_type}"
除了插值之外,另一个区别是'转义序列'在单引号中不起作用
puts 'a\nb' # just print a\nb
puts "a\nb" # print a, then b at newline
在这种情况下,怎么写都没有区别。它们是等价的。此外,你可能想要阅读更多的Ruby指南/教程:)
你想要使用单引号的另一个原因是当你将正则表达式模式作为字符串传递时:
这个regex模式可以工作,因为在单引号中传递:
"123 ABC".match('\d')
=> #<MatchData "1">
这个正则表达式模式将失败,因为在双引号内传递(你必须双转义才能让它工作):
"123 ABC".match("\d")
=> nil