2 ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
我对在方法中使用表达式插值感到困惑.最初我认为我可以传递任何类型的表达式,比如说name.capitalize,但我也可以通过没有表达式插值.这是两个案例.只需执行以下两种方法irb,我对两种方法都有相同的结果.我使用的是Ruby 1.9.3
1.
def say_goodnight(name)
result = "Good night, " + name.capitalize
return result
end
puts say_goodnight('uncle')
Run Code Online (Sandbox Code Playgroud)
2.
def say_goodnight(name)
result = "Good night, #{name.capitalize}"
return result
end
puts say_goodnight('uncle')
Run Code Online (Sandbox Code Playgroud)
两种方式都会产生类似的输出
Good night, Uncle
Run Code Online (Sandbox Code Playgroud)
所以我的问题是我什么时候应该在Ruby中使用表达式插值?什么时候我应该在Ruby中使用参数?
小智 6
无论哪个读清洁剂通常都更好.例如,如果字符串包含许多变量引用,每个变量引用用几个字符分隔,则表达式的"+"形式可能变得复杂且不清楚,而插值字符串则更明显.另一方面,如果表达式相对复杂,最好将它们与字符串的其他组件分开.
所以,我认为如下:
"Hello #{yourname}, my name is #{myname} and I'm #{mood} to see you."
Run Code Online (Sandbox Code Playgroud)
比...更清楚
"Hello " + yourname + ", my name is " + myname + " and I'm " + mood + "to see you."
Run Code Online (Sandbox Code Playgroud)
但是,如果我有复杂的表达式,我可能希望将它们分成不同的源代码行,并且那些与"+"更好地连接.
| 归档时间: |
|
| 查看次数: |
731 次 |
| 最近记录: |