Ruby 的条件运算符比 Java 更加复杂,看例子 E3.8-1.rb:
== (等于)
!= (不等于)
比较两个对象的值是否相等 ,返回 true, flase
a=1; b=1.0; a==b #true
eql?
比较两个对象的值、类型是否相等,返回 true, flase
a=1; b=1.0; a.eql?(b) #flase(a为整数型,b为浮点型)
equal?
比较两个对象在内存中地址是否相同,返回 true, flase
a=1.0; b=1.0; a.equal?(b) #flase
a=1.0; b=a ; a.equal?(b) # true
开源文档:Ruby 语言入门教程 v1.0
第 29 页
<=>
比较两个对象的大小,大于、等于、小于 分别返回1,0,-1
"aab" <=> "acb" # -1 (第二个 a 的 ASCII 码小于 c)
[5] <=> [4,9] # 1 (第一个元素 5 > 4)
===
右边的对象是否在左边区间之内,返回 true, flase
puts (0..9)=== 3.14 #true
puts ('a'..'f')=== 'c' # true
=~(匹配)
用来比较是否符合一个正则表达式,返回模式在字符串中被匹配到的位置,否则返回 nil
!~ (不匹配)
断言不符合一个正则表达式,返回 true, flase
<= < > >=
小于等于 小于 大于 大于等于