ruby case表达式

 

Ruby 中的 case 语句非常强大,首先我们来看一个基本用法:

grade = case
             when point >= 85: 'A'
             when point >= 70 && point < 80: 'B'
             when point >= 60 && point < 70: 'C'
             when point < 60: 'D'
             else 'E'
             end

 这里 case 语句的作用和 if 表达式类似, case 语句的返回值就是最后一个执行的表达式的值。和 if 语句类似,如果写在同一行的话需要加 then 或冒号。

另一种也是最常用的形式是在 case 后列出目标,然后每个语句依次和目标比较:

case input_line
when "debug"
    print "We are in debug mode."
when /p\s+(\w+)/
    dump_variable($1)
when "quit", "exit"
    exit
else
    print "Illegal command: #{input_line}"
end
  另一个例子:
Season = case month
                when 3..5 :   "Spring"
                when 6..8 :   "Summer"
                when 9..11:   "Autumn"
                when 12..2:   "Winter"
                else          "Error"
                end

 

Ruby 提供了一个运算符 === ,只要一个类提供了 === 方法,那这个类的对象就可以出现在 case 语句中。例如对于正则表达式定义了 === 为模式匹配。

Ruby 中,所有类的基类是 Class 类,所有类实例都是 Class 类的实例( to-do )。它定义 === 的含义为为参数所提供是否为实例的类或父类。

case shape
when Square, Rectangle
# ...
when Circle
# ...
when Triangle
# ...
else
# ...
end
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值