什么是ruby相反arrays#拒绝?

似乎可能是keep_if

如果是这样,为什么不叫keep

  • reject相反的是select (返回一个新的数组)
  • reject!的反面reject!select! (就地编辑数组)
  • keep_ifdelete_if (就地编辑数组)

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