我正在ruby-lang.org上做Ruby 20分钟的教程,我发现这个代码搞乱了irb:
irb(main):015:0> def h(name)
irb(main):016:1> puts "Hello #{name}!"
irb(main):017:1> end
Run Code Online (Sandbox Code Playgroud)
根据解释,该#{name}部分只是将变量添加到字符串?我认为这是一种奇怪而冗长的编写方式所以我只是想我会尝试"Hello" + name并且它的工作方式完全相同..
我在谷歌周围试图找到一个意义#{},我找不到任何谈论它,所以我想我会问社区..有什么区别?有吗?
提前致谢!
有时使用+更容易,但在这种情况下,您不会感到惊叹号.考虑:
puts "Hello #{name}!"
Run Code Online (Sandbox Code Playgroud)
与
puts "Hello " + name + "!"
Run Code Online (Sandbox Code Playgroud)
我发现第一个更易读,特别是在字符串中多次使用时.
还要考虑在第二个版本中"Hello"之后省略空间是多么容易:
puts "Hello" + name + "!"
Run Code Online (Sandbox Code Playgroud)
很容易写,但可能不是你的意思.
最后,当您插入的内容不是字符串时,它会产生更大的差异:
puts "The Winner was #{name} with a score of #{score}!"
Run Code Online (Sandbox Code Playgroud)
顺便说一句,搜索"字符串插值"可能会使查找事物变得更容易,而不仅仅是搜索语法.