ОП не нравится внешний вид an_ary.-([el])
... но на самом деле многое зависит от него.
Верно ... это немного уродливо, но метод минус делает лаконично, вычитая один массив из другого:
ary = [1, 2, 99, 3]
ary.-([99])
или
odds = [1, 3, 5, 7, 9, 99]
ary.-(odds)
Преимущество здесь в том, что он полностью цепной (в отличие от .delete
или ary - odds
), поэтому вы можете делать такие вещи, как:
ary.-(odds).average
Как только ваш глаз обнаружит знак минуса, его будет намного легче читать,понимать и визуально обнаруживать опечатки, отличные от блочных конструкций .delete_if
или .reject
.
Он также хорошо работает с оператором безопасной навигации Ruby &.
, если вы можете получить nil вместо массива.Это то, что вы не можете сделать элегантно с вычитанием массивов.
maybe_array&.-(odds)&.average