Если бы я хотел, чтобы подрезать массив по заданному набору параметров я хотел бы написать что-то вроде этого:Используя выход в оператора выбора
array = [4,5,6,7,8]
a = array.select{|i| i>=5}
puts a.inspect
, который будет возвращать [5,6,7,8]
.
Я хочу написать функцию «фильтр», которая выполняет одно и то же. В этом случае моя первая мысль, чтобы написать что-то вроде:
array = [4,5,6,7,8]
a = filter(array) {|i| i >= 5}
puts a.inspect
То, что я не могу понять, как правильно называть yield
внутри метода для вызова блока кода во время select
заявления:
a = array.select{yield}
Кажется, что он не работает, поскольку он пытается вызвать блок кода на nil, а не массив внутри функции. Каков правильный способ сделать это?
И ваш ответ и Rustams, кажется, работают - Есть ли рубин стиль конвенции о какой способ решения этого является предпочтительным? – lifayt
Руководство по стилю Ruby предполагает, что '& block' является предпочтительным соглашением: https://github.com/bbatsov/ruby-style-guide#block-argument –