Оператор космического корабля и условные высказывания
Быстрый вопрос. Есть ли более элегантный способ написать что-то подобное?
result = a <=> b
if result == 1
# do something
elsif result == 0
# do something else
else
# do something else
end
2 ответа
Решение
Вы можете использовать case
утверждение:
case a <=> b
when 1
# do something
when 0
# do something else
when -1
# do something else
else
# return / catch error
end
Для простых лайнеров вы также можете сократить его с then
case a <=> b
when 1 then x = "foo"
when 0 then y = "bar"
when -1 then z = "foobar"
else # return / catch error
end
Я не знаю, является ли это более изящным, но это конечно более прямо:
case
when a < b
# do A
when a > b
# do B
else
# do C
end