先貼出一段程序
print "賦值/n"
a = 1 ;b = 2 + 3 ;print "a=",a," b=",b,"/n"
a ,b = b ,a ;print "a=",a," b=",b,"/n"
a = b = 1 + 2 + 3 ;print "a=",a," b=",b,"/n"
a = (b = 1 + 2) + 3 ;print "a=",a," b=",b,"/n"
x = 0 ;print "/n"
a,b,c = x, (x+1), (x+2) ;print "a=",a," b=",b," c=",c,"/n"
print "關係運算符/n"
a=1; b=1.0; puts a==b
a=1; b=1.0; puts a.eql?(b)
a=1.0; b=1.0; puts a.equal?(b)
a=1.0; b=a ; puts a.equal?(b)
puts "aab" <=> "acb"
puts [5] <=> [4,9]
puts (0..9)=== 3.14
puts ('a'..'f')=== 'c'
程序運行的結果是
>ruby E3.8-1.rb
賦值
a=1 b=5
a=5 b=1
a=6 b=6
a=6 b=3
a=0 b=1 c=2
關係運算符
true
false
false
true
-1
1
true
true
>Exit code: 0
Ok,Now,我們開始分析
就“賦值”來講,主要是 a,b = b,a 值得談一哈,正如大家所猜測的那樣,這既是一個變量值交換的語法,交換變量a和變量b的值
就“關係運算符”來講,
運算符“==”,比較兩個對象的值是否相等 ,返回 true, flase
運算符“!=”同“==”,只是結果相反
運算符“eql?”,比較兩個對象的值、類型是否相等,返回 true, flase
運算符"equal?",比較兩個對象在內存中地址是否相同,返回 true, flase
運算符“<=>”,比較兩個對象的大小,大於、等於、小於 分別返回1,0,-1
"aab" <=> "acb" # -1 (第二個 a 的 ASCII 碼小於 c)
[5] <=> [4,9] # 1 (第一個元素 5 > 4)
運算符"===",右邊的對象是否在左邊區間之內,返回 true, flase