ruby case表达式_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > ruby case表达式

ruby case表达式

 2011/12/8 8:11:14  clark1231  http://clark1231.iteye.com  我要评论(0)
  • 摘要:Ruby中的case语句非常强大,首先我们来看一个基本用法:grade=casewhenpoint>=85:'A'whenpoint>=70&&point<80:'B'whenpoint>=60&&point<70:'C'whenpoint<60:'D'else'E'end这里case语句的作用和if表达式类似,case语句的返回值就是最后一个执行的表达式的值。和if语句类似,如果写在同一行的话需要加then或冒号
  • 标签:Ruby ASE 表达式

?

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
?

?

发表评论
用户名: 匿名