以下代码摘自Pickaxe书的第118页。有人可以向我解释为什么我们不需要#{@name}
进行插值吗?
class TaxCalculator
def get_tax(amount)
"#@name on #{amount} = #{@block.call(amount)}"
end
end
答案 0 :(得分:4)
当要插值的表达式只是对全局,实例或类变量的引用时,可以省略大括号。只有更复杂的表达式才需要大括号。
然而,从风格和可读性的角度来看,是否省略括号是一个好主意存在争议。
答案 1 :(得分:2)
这个问题已经有了一个很好的答案:
Why does string interpolation work in Ruby when there are no curly braces?
简而言之:当您使用全局,类或实例变量时,可以省略{}。