я могу использовать тройной оператор, как это:Ruby: Получить значение, если оно истинно или
a.empty? ? a : b
Если a
находится в нескольких минутах переменной, это работает. Если я не хочу использовать переменную, но, например, я вхожу в сложную цепочку функций массива, где у меня нет временных переменных, как это сделать, не повторяя цепочку? Это, мне кажется, работать только с нулевыми значениями, где я могу использовать or
a.filter { bla bla bla }.map { bla bla bla }.reduce { bla bla } || b
Но для любого другого вида проверки, как это сделать?
a.filter { bla bla bla }.map { bla bla bla }.reduce { bla bla }.empty? ? a.filter { bla bla bla }.map { bla bla bla }.reduce { bla bla } : b
Один вопрос с первой линией. если a 'empty', почему вы хотите снова выполнить этот запуск? Я ошибаюсь, думая: «Если filter-> map -> reduce дает вам пустой результат, вы хотите запустить его снова, почему?» – Arindam
Как-то использование временных переменных не является опцией? – nicooga
Я бы просто проверил на пустое место? после фильтра. –