Несколько регистр выражений - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть две переменные field1 и field2.Мне нужно сделать оператор case для каждой переменной:

case field1
when "val1"
  puts field1
when "val2"
  puts field2
end

case field2
when "val1"
  puts field1
when "val2"
  puts field2
end

Как я могу реализовать что-то похожее в одном выражении case?Примерно так:

case field1, field2
when "val1"
  puts field1
when "val2"
  puts field2
end

Поможет ли какое-нибудь исправление обезьяны?

1 Ответ

0 голосов
/ 05 октября 2018

Очень неясно, что могут содержать поля 1 и 2.Вы можете использовать оператор switch для массива из двух элементов.

  case [field1, field2]
  when [1,1]
    puts "a"
  when [1,2]
    puts "b"
  else
    puts "I got nothing"
  end

Но, вероятно, это редко - хорошая идея, так что вы также можете просто использовать elseif, чтобы вы могли проверить любые условия, которые должны бытьобработано

if field1 == field2
   puts "Impossible!"
elsif field1.length > field2.length
   puts "Something"
elsif [field1, field2].any?(&:nil?)
   puts "I need two fields there, my friend"
else
   puts "I am disappointed"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...