似乎它可能是keep_if
。
如果是这样,为什么不叫它keep
?
reject
是select
(返回一个新数组)reject!
是select!
(就地编辑数组)keep_if
是delete_if
(就地编辑数组)我认为这与深思熟虑的语义有关,我认为它是正确的。假设您已经有一组东西,“t1、t2 和 t3”;如果你拒绝一个子集,你说“我拒绝 t1 和 t2”。您没有提及 t3,因为它不受您的操作(您的拒绝)的影响:默认为“保留”。但如果你表达的是你打算保留的东西,而你只是说“我保留了t1和t2”,那么t3的状态就会受到质疑:毕竟你已经有了t1和t2,那还有什么意义呢?重新保留它们(它们已经处于默认状态,“保留”),特别是因为您隐含地也保留了 t3. 通过使用语法“keep_if”,