Функция принимает строку как аргумент, например fn ("string").Как написать блок, который возвращает строку в ruby
Я хочу передать различные значения в зависимости от трех более условий, и один подход, который немного нечитаемым является:
fn(check_1 ? "yes" : check_2 ? "no" : "maybe")
Я хочу, чтобы заменить аргумент с блоком, который возвращает строку. я надеюсь, что я могу сделать что-то вроде:
fn({|arg| if check_1
arg = "yes"
elsif check_2
arg = "no"
else
arg = "maybe"
end
})
я могу иметь больше условий и будет по-прежнему иметь возможность писать все это, как если бы это было в одной строке.
Как это сделать в Ruby?
Я не уверен, как я его использую. Я имею в виду, если я делаю test (foo), я получаю вывод, как будто мне передано значение: #, тогда как я хочу, чтобы sth: мне было передано значение: true –
umar
lambda foo ожидает 3 входа. ему нужен вход для возврата результата. поэтому вы не можете пройти тест (foo), вам нужно пройти тест (foo ["something", true, false]) – cgr