停止寻找工作,开始追寻事业

(二)ruby与其它语言不同的地方

上一篇 / 下一篇  2010-01-22 16:09:02 / 个人分类:自动化测试

先贴出一段程序

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


TAG:

 

评分:0

我来说两句

日历

« 2024-04-30  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 10613
  • 日志数: 20
  • 建立时间: 2010-01-07
  • 更新时间: 2010-12-29

RSS订阅

Open Toolbar