加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 在没有参数的情况下,Array#push(unshift)是否有任何用例

发布时间:2020-12-17 02:25:34 所属栏目:百科 来源:网络整理
导读:我很惊讶地知道 Ruby的Array#push(和Array#unshift)可以在没有参数的情况下被调用,它们什么都不做. 在我看来,当没有参数传递给这些方法时,提出ArgumentError似乎是更合适的行为(就像在Python中追加一样). 没有参数的Array#push(Array#unshift)是否有任何用例
我很惊讶地知道 Ruby的Array#push(和Array#unshift)可以在没有参数的情况下被调用,它们什么都不做.

在我看来,当没有参数传递给这些方法时,提出ArgumentError似乎是更合适的行为(就像在Python中追加一样).

没有参数的Array#push(Array#unshift)是否有任何用例?

解决方法

The documentation清楚地列出了一个必需参数.

但是,Ruby Spec Suite显示了传递0参数的示例.

MRI/YARV test suite还明确地表明传递0参数应该是可能的,但是有一个注释行实际上测试相反的,即传递0参数将引发异常,并且有一条注释表明此功能是在Ruby 1.8中引入的.

因此,显然,在Ruby 1.6及更早版本中,曾经有一个强制参数,而Ruby 1.8引入了任意数量参数的可能性.我能想到的唯一一个用例是splatting一个可能为空的数组或nil而不会引发错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读