自動化測試之路(二)--ruby與其他語言不同的地方(1)

 

 先貼出一段程序

 

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

 

發佈了43 篇原創文章 · 獲贊 10 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章