Ruby案例陈述
示例
Ruby将case关键字用于switch语句。
根据RubyDocs:
Case语句由一个可选条件(位于和的参数的位置)case以及零个或多个when子句组成。when匹配条件的第一个子句(如果条件为空,则为布尔真值)或“wins”,并执行其代码节。case语句的值是成功when子句的值,或者nil如果没有这样的子句的话。
case语句可以以else子句结尾。每个when语句可以有多个候选值,以逗号分隔。
例:
case x when 1,2,3 puts "1, 2, or 3" when 10 puts "10" else puts "Some other number" end
较短的版本:
case x when 1,2,3 then puts "1, 2, or 3" when 10 then puts "10" else puts "Some other number" end
case子句的值when使用===方法(不是==)与每个子句匹配。因此,它可以与各种不同类型的对象一起使用。
一个case语句可以与范围内使用:
case 17 when 13..19 puts "teenager" end
一个case语句可以用正则表达式中使用:
case "google" when /oo/ puts "word contains oo" end
一个case语句可以用一个Proc或lambda使用:
case 44
when -> (n) { n.even? or n < 0 }
puts "even or less than zero"
end一个case语句可以带类的使用:
case x when Integer puts "It's an integer" when String puts "It's a string" end
通过实现该===方法,您可以创建自己的匹配类:
class Empty
def self.===(object)
!object or "" == object
end
end
case ""
when Empty
puts "name was empty"
else
puts "name is not empty"
end一个case语句可以没有值来匹配使用:
case when ENV['A'] == 'Y' puts 'A' when ENV['B'] == 'Y' puts 'B' else puts 'Neither A nor B' end
一个case语句具有价值,所以你可以使用它作为方法的参数或在分配中:
description = case 16
when 13..19 then "teenager"
else ""
end
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下