多个大小写表达式

时间:2018-09-26 11:33:22

标签: ruby

我有两个变量field1field2。我需要对每个变量做一个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 :(得分:1)

目前还不清楚字段1和2可以包含什么。您可以在由两个元素组成的数组上使用switch语句。

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

但是可能很少会是一个好主意,因此您也可以执行ififif,这样您就可以检查要处理的任何条件

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