52

似乎它可能是keep_if

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

4

2 回答 2

104
  • 与之相反的rejectselect(返回一个新数组)
  • 与之相反的reject!select!(就地编辑数组)
  • 与之相反的keep_ifdelete_if(就地编辑数组)
于 2012-10-04T03:07:12.007 回答
2

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

于 2012-10-04T14:15:42.943 回答