什么是!遵循Ruby方法的名称表示?

时间:2011-10-21 18:48:43

标签: ruby syntax

  

可能重复:
  Why are exclamation marks used in Ruby methods?

在查看一些Ruby代码时,我遇到了这种方法:

def SomeMethod!
    // ...
end

这是什么!按照方法名称吗?

3 个答案:

答案 0 :(得分:2)

我认为将方法标记为“比其他方法更危险”只是一种惯例。这可能意味着它具有影响其参数或类别属性的副作用。这只是提醒要小心。

答案 1 :(得分:1)

按照惯例,它意味着该方法会改变类的状态。

答案 2 :(得分:1)

方法名称末尾的感叹号表示此方法以比没有!的相同方法的版本更危险的方式执行操作。

请注意,如果没有其他方法,则永远不要使用!。您可以将!理解为在视觉上区分两种其他方法相同的方法。

示例:

Array#flatten

Array#flatten!

Kernel#exit!

Kernel#exit