Обновление: Есть один способ, который я могу придумать, но это труднее читать, чем троичное:
(array & [value]).first || default_value
Вы можете сделать это в Array
, если вытак склонен:
class Array
def fetch_value(value, default)
(self & [value]).first || default
end
end
a = *1..3
a.fetch_value(4, "foo")
#=> "foo"
Старый ответ, прежде чем я понял, что вы хотите использовать значение для поиска, а не индекс:
Array # fetch принимает необязательный второй аргумент:
array.fetch(index, default)
Вот пример:
a = *1..3
a.fetch(4, "foo")
#=> "foo"