娃娃鸭学Ruby-24、操作符

操作符

在Ruby语言中,一个操作符是一个标记。
操作数本身是表达式

操作符的元数 指它的操作数的个数
操作符的优先级

多个同样优先级的操作符,求值顺序由操作符的结合性来决定。
结合性 “L" 表示 从左到右进行求值
”R" 表示 从右到左进行求值
"N"表示 不具有结合性

大多数算术操作符都是左结合的。
求幂操作是右结合的。


1)一元+和一元-
一元-比一元+优先级略低
对应方法名:-@ 和 +@

2)求幂操作**

3)算术操作符: + - * / %

String类 + :连接操作
* :字符串重复操作

4)移位和追加操作符:<< 和 >>
(0b1011<<1).to_s(2) # => "10110"
(ob10110>>2).to_s(2) #=>"101"

5)补,并,交操作符:~ ,& ,| 及^

6)比较操作符: <, <=,> ,>= 和<=>
<=>
左操作数小于右操作数 返回 -1
大于 1
相等 0
不能比较 nil
7)相等性操作符:==,!=,=~,!~和===

8)布尔操作符:&&,||,! ,and,or,not
短路式的

9)范围和Flip-Flops: .. 和...
x+1..x*x
x..y
或 Range.new(x,y)
x...y
或Range.new(x,y,true)

flip-flop
(1..10).each{|x| print x if x==3..x==5}

#prints "3"
(1..10).each{|x| printx if x==3..x>=3}
#prints "34"
(1..10).each{|x| print x if x==3..x>=3}


10) 条件操作符: ?:
唯一的三元操作
?:
第一个操作数的值是 false 或nil 执行第三个操作数

"You have #{n} #{n==1 ? 'message' : 'messages'}"
?:优先级相当低

11)赋值操作符
x=y=z=0
x=(y=(z=0))

12) defined? 操作符
测试操作数是否已经被定义过
#compute f(x) ,but only if f and x are both defined
y=f(x) if defined? f(x)

13)语句修饰符
rescue
if
unless
while
until

print x if x

14)非操作符
()
[]
{}
.和::
;、,和=>
:
*,&和<

2011-4-15 15:42 danny
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值