新手问题 为什么数组的 delete 方法是返回被 delete 的值而不是操作后的数组?

cichol · 2014年06月06日 · 最后由 crazyjin 回复于 2014年06月08日 · 2222 次阅读

RT 后者应该更符合直觉不是吗? 而 delete_if 方法倒是返回了一个数组。。

我认为都不符合直觉。。。。。

delete_if 也是返回被删的元素,只是有可能多个,所以数组罢了。

@cicholgricenchos @pynix 写代码多的话你会知道,经常需要删掉一个值,并处理这个值,之后会继续处理数组。

除此之外,也与 Hash 的返回方式类似,统一。

#1 楼 @pynix 不是的,[1,1,2,3].delete_if{|x| x==1}返回 [2,3],确实是处理后的数组,还有 reject 方法也是这样

#3 楼 @cicholgricenchos 。。。。大意了。。。

这样要删除的值不存在,就返回 nil

#6 楼 @liuyaouestc 有道理,感觉 delete_if 和 delete 是分别对应不同需求而设置的

#6 楼 @liuyaouestc 这特么是一个坑。。我填过。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号