使用bang(<a ng-style="{'background-color': color}">Sample Text</a>
)进行方法命名的Ruby约定。惯例是如果方法改变!
,我们使用bang让其他人了解自我修改的行为。
例如self
不会更改Array#select
,但self
会更改Array#select!
。但Array#keep_if
确实会改变自我。没有任何名为Array#keep_if!
的内容。
不遵守惯例可能是什么原因?
答案 0 :(得分:4)
Ruby的创建者Matz写道:
爆炸(!)并不意味着“破坏性的”#34;也不缺乏意味着非 破坏性的。爆炸标志意味着爆炸版本更多 比非爆炸对手更危险;谨慎处理&#34;。以来 Ruby有很多&#34;破坏性的&#34;方法,如果爆炸标志跟随你 意见,每个Ruby程序都会充满爆炸,因此很难看。
来源:Ruby Forum
答案 1 :(得分:0)
这是一种常见的误解。爆炸方法用于区分同一方法的危险版本和安全版本。这并不意味着它必然会改变它的接收器。