3.8赋值和条件运算符
Ruby的条件运算符比Java更加复杂
- eql? 比较两个对象的值、类型是否相等;equal?比较两个对象内在中地址是否相同。返回值 true,false
- <=>比较两个对象大于,小于,等于,返回1,0,-1
- ===右边的对象是否在左边区间之内,返回值true , false
- =~ (匹配)用来比较是符合一个正则表达式,返回模式在字符串中被匹配到位置,否则返回nil
- !~(不匹配)断言不符合一个正则表达式,返回true,false
3.9条件判断语句
一、单行if(如果)语句
- if 条件 then 语句 end
- (语句1;语句2;语句3;) if 条件
二、多行if语句
if 条件 语句1;语句2;
elsif 条件 语句1;语句2;
else 语句 语句
end
三、unless=if not (条件)
四、多分支
case 对象
when 可能性1
when 可能性2
when 可能性3
else 可能性4
end
3.10循环语句
一、while(当……)循环
- while 条件
语句1;语句2;
end
2. 单行 while循环 (语句1,语句2) while条件
二、until(直到……)循环
直到循环的条件与while是相反的书中有一实例
三、for...in 循环
for 变量 in 对象 #对象可以是数组区间集合
语句1;语句2;
end
四、break 跳出当前层循环
next 忽略本次循环的剩余部分,开始下一次的循环
redo 重新开始循环,还是从这一次开始
retry 重头开始这个循环体
五、.times{} .upto{} .downto{} .each{} .step{}
总体看这几种循环结构是简化的while,for循环
3.11异常与线程
Java | Ruby |
try | begin/end |
catch | rescuse |
finally | ensure |
throw | raise |