为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在Ruby方法中使用感叹号?

为什么在Ruby方法中使用感叹号?

慕村225694 2019-06-27 16:35:21
为什么在Ruby方法中使用感叹号?在Ruby中,有些方法有一个问号(?)问这样的问题include?询问所讨论的对象是否包括在内,这将返回true/false。但是为什么有些方法有感叹号(!)其他人不知道的地方?什么意思?
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

感叹号意味着很多事情,有时除了“这是危险的,要小心”之外,你无法从它中分辨出很多东西。

正如其他人所说的,在标准方法中,它通常用于指示导致对象自身发生变异的方法,但并不总是这样。请注意,许多标准方法都会更改接收方,并且没有感叹号(popshiftclear),一些带有感叹号的方法不会改变它们的接收器(exit!)。

其他库可能会以不同的方式使用它。在Rails中,感叹号通常意味着该方法将在失败时抛出异常,而不是默默地失败。

这是一个命名惯例,但许多人使用它的方式微妙不同。在您自己的代码中,一个很好的拇指规则是每当一个方法做“危险”的事情时使用它,特别是当存在两个同名的方法并且其中一个比另一个更“危险”时。“危险”可能意味着几乎任何东西。


查看完整回答
反对 回复 2019-06-27
?
侃侃无极

TA贡献2051条经验 获得超10个赞

这个命名约定是从方案.

1.3.5命名约定

按照惯例,总是返回布尔值的过程名称通常以“`?‘”结尾。这类过程称为谓词。

按照惯例,将值存储到以前分配的位置的过程名称(见3.4节)通常以“`!‘”结尾。这种程序称为突变程序。按照约定,突变过程返回的值未指定。


查看完整回答
反对 回复 2019-06-27
  • 3 回答
  • 0 关注
  • 838 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信