繁体   English   中英

没有#{..}语法的字符串插值如何工作? [重复]

[英]How does string interpolation work without #{..} syntax? [duplicate]

这个问题已经在这里有了答案:

下面的代码摘自Pickaxe书的第118页。 有人可以向我解释为什么我们不需要#{@name}进行插值吗?

class TaxCalculator
  def get_tax(amount)
    "#@name on #{amount} = #{@block.call(amount)}"
  end
end

当要插值的表达式只是对全局变量,实例变量或类变量的引用时,可以省略花括号。 括号仅用于更复杂的表达式。

但是,从样式和可读性的角度来看,关于是否删除大括号是否是一个好主意一直存在争议。

这个问题已经有了一个很好的答案:

没有花括号时,为什么字符串插值在Ruby中起作用?

简而言之:使用全局变量,类变量或实例变量时,可以保留{}。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM