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