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

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

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

共收到 8 条回复

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

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 这特么是一个坑。。我填过。。

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