gpt4 book ai didi

ruby - 为什么 Array#keep_if 不遵循 Ruby 约定?

转载 作者:数据小太阳 更新时间:2023-10-29 07:16:47 24 4
gpt4 key购买 nike

对于使用 bang(!) 的方法命名,有一个 Ruby 约定。约定是如果方法改变了self,我们使用bang让其他人知道 self 修改的行为。

例如,Array#select 不会更改self,但Array#select! 会。但是 Array#keep_if 确实改变了自己。没有什么叫做 Array#keep_if!

不遵守约定的原因可能是什么?

最佳答案

Ruby 的创造者 Matz 写道:

The bang (!) does not mean "destructive" nor lack of it mean non destructive either. The bang sign means "the bang version is more dangerous than its non bang counterpart; handle with care". Since Ruby has a lot of "destructive" methods, if bang signs follow your opinion, every Ruby program would be full of bangs, thus ugly.

来源:Ruby Forum

关于ruby - 为什么 Array#keep_if 不遵循 Ruby 约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33449620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com