什么是ruby相反arrays#拒绝?
似乎可能是keep_if
。
如果是这样,为什么不叫keep
?
- 与
reject
相反的是select
(返回一个新的数组) -
reject!
的反面reject!
是select!
(就地编辑数组) -
keep_if
是delete_if
(就地编辑数组)
我认为这与精心devise的语义有关,我认为这是正确的。 假设你已经有了一套“t1,t2,t3”的东西, 如果你拒绝一个子集,你会说“我拒绝t1和t2”。 你不提t3,因为它不受你的行为(你的拒绝)的影响:默认是“保持”。 但是,如果你正在expression你想要保留的东西,而你只是说“我保留了t1和t2”,那么t3的状态就会受到质疑:毕竟,你已经有了t1和t2,那么说什么呢?保持他们(他们已经在默认状态,“保持”),特别是因为你隐式也保持t3。 通过使用语法“keep_if”,你明确地指出有一个条件(简单的或复合的),它将决定什么是要保留什么和丢弃什么。