使用’!’的方法之间是否存在默认差异

Is there a default difference between methods with '!' and without, in ruby?

本问题已经有最佳答案,请猛点这里访问。

使用"!"的方法之间是否有默认差异?没有,红宝石?

1
2
3
collect v collect!

flatten v flatten!

等等…


在Ruby中,主要的区别在于,!方法是自私的,即它们将更改应用于self对象。它们返回nil,而非!方法创建新的修改对象。

在Rails中,不同之处在于,!方法是非!方法的安全版本,这意味着!方法在执行过程中遇到错误时会引发异常,而非!方法只返回错误状态,通常是false条件。