我对在方法中使用表达式插值感到困惑。最初我以为我可以传递任何类型的表达式,比如 name.capitalize
,但我也可以在没有表达式插值的情况下传递。这是两种情况。只需在 irb
上执行以下两个方法,我对这两个方法的结果相同。我正在使用 Ruby 1.9.3
1.
def say_goodnight(name)
result = "Good night, " + name.capitalize
return result
end
puts say_goodnight('uncle')
2.
def say_goodnight(name)
result = "Good night, #{name.capitalize}"
return result
end
puts say_goodnight('uncle')
两种方式都会产生类似
的输出Good night, Uncle
所以我的问题是什么时候应该在 Ruby 中使用表达式插值?什么时候应该在 Ruby 中使用参数?
最佳答案
阅读更清晰的通常更好。例如,如果字符串包含多个变量引用,每个变量引用由几个字符分隔,则表达式的“+”形式会变得复杂和不清楚,而内插字符串则更明显。另一方面,如果表达式相对复杂,最好将它们与字符串的其他部分分开。
所以,我认为如下:
"Hello #{yourname}, my name is #{myname} and I'm #{mood} to see you."
比
更清晰"Hello " + yourname + ", my name is " + myname + " and I'm " + mood + "to see you."
但如果我有复杂的表达式,我可能想将它们分开到不同的源代码行,并且用“+”更好地连接它们。
关于ruby-on-rails - 什么时候应该在 Ruby 中使用表达式插值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660525/