自动化测试之路(二)--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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章