Ответ 1
- Противоположностью
reject
являетсяselect
(возврат нового массива) - Противоположностью
reject!
являетсяselect!
(редактирование массива на месте) - Противоположностью
keep_if
являетсяdelete_if
(редактирование массива на месте)
Кажется, что это может быть keep_if
.
Если да, то почему он не называется keep
?
reject
является select
(возврат нового массива)reject!
является select!
(редактирование массива на месте)keep_if
является delete_if
(редактирование массива на месте)Я думаю, что это связано с хорошо продуманной семантикой, и я бы утверждал, что это правильно. Скажем, у вас уже есть множество вещей: "t1, t2 и t3"; если вы отклоняете подмножество, вы говорите: "Я отклоняю t1 и t2". Вы не упоминаете t3, потому что это не влияет на ваше действие (ваш отказ): по умолчанию "keep". Но если вы выражаете то, что собираетесь намереваться сохранить, и вы просто говорите: "Я держу t1 и t2", статус t3 ставится под сомнение: ведь у вас уже есть t1 и t2, поэтому, что бы сказать, (они уже находятся в состоянии по умолчанию, "сохраняют" ), тем более, что вы также не сохраняете t3. Используя синтаксис "keep_if", вы явно указываете, что существует условие (простое или составное), которое будет определять, что должно быть сохранено и что должно быть отброшено.