请选择 进入手机版 | 继续访问电脑版

01BIM社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 729|回复: 5

ruby运算符大致教程

[复制链接]

9

主题

17

帖子

91

积分

注册会员

Rank: 2

积分
91
发表于 2015-6-30 10:08:44 | 显示全部楼层 |阅读模式
Ruby 比较运算符
==检查两个操作数的值是否相等,如果相等则条件为真。 (a == b) 不为真。
!=检查两个操作数的值是否相等,如果不相等则条件为真。 (a != b) 为真。
>检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (a > b) 不为真。
<检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (a < b) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (a >= b) 不为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (a <= b) 为真。
<=>联合比较运算符。如果第一个操作数等于第二个操作数则返回 0,如果第一个操作数大于第二个操作数则返回 1,如果第一个操作数小于第二个操作数则返回 -1。 (a <=> b) 返回 -1。
===用于测试 case 语句的 when 子句内的相等。 (1...10) === 5 返回 true。
.eql?如果接收器和参数具有相同的类型和相等的值,则返回 true。 1 == 1.0 返回 true,但是 1.eql?(1.0) 返回 false。
equal?如果接收器和参数具有相同的对象 id,则返回 true。如果 aObj 是 bObj 的副本,那么 aObj == bObj 返回 true,a.equal?bObj 返回 false,但是 a.equal?aObj 返回 true。

回复

使用道具 举报

9

主题

17

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2015-6-30 10:10:11 | 显示全部楼层
Ruby 赋值运算符
=简单的赋值运算符,把右操作数的值赋给左操作数 c = a + b 将把 a + b 的值赋给 c
+=加且赋值运算符,把右操作数加上左操作数的结果赋值给左操作数 c += a 相当于 c = c + a
-=减且赋值运算符,把左操作数减去右操作数的结果赋值给左操作数 c -= a 相当于 c = c - a
*=乘且赋值运算符,把右操作数乘以左操作数的结果赋值给左操作数 c *= a 相当于 c = c * a
/=除且赋值运算符,把左操作数除以右操作数的结果赋值给左操作数 c /= a 相当于 c = c / a
%=求模且赋值运算符,求两个操作数的模赋值给左操作数 c %= a 相当于 c = c % a
**=指数且赋值运算符,执行指数计算,并赋值给左操作数 c **= a 相当于 c = c ** a

回复 支持 反对

使用道具 举报

9

主题

17

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2015-6-30 10:11:29 | 显示全部楼层
本帖最后由 px9373bim 于 2015-6-30 10:13 编辑

Ruby 位运算符
&如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (a & b) 将得到 12,即为 0000 1100
|如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (a | b) 将得到 61,即为 0011 1101
^如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (a ^ b) 将得到 49,即为 0011 0001
~二进制补码运算符是一元运算符,具有"翻转"位效果。 (~a ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。
<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 a << 2 将得到 240,即为 1111 0000
>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 a >> 2 将得到 15,即为 0000 1111
a = 60,且 b = 13,现在以二进制格式,它们如下所示:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a  = 1100 0011

回复 支持 反对

使用道具 举报

9

主题

17

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2015-6-30 10:16:28 | 显示全部楼层
Ruby 逻辑运算符:与,或,非 基本都懂不用多说
Ruby 三元运算
? :条件表达式如果条件为真 ? 则值为 X : 否则值为 Y

例子:1+2<4 ? 5 : 6  1+2<4为真满足条件 返回值5

回复 支持 反对

使用道具 举报

9

主题

17

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2015-6-30 10:19:20 | 显示全部楼层
Ruby 范围运算符
..创建一个从开始点到结束点的范围(包含结束点) 1..10 创建从 1 到 10 的范围
...创建一个从开始点到结束点的范围(不包含结束点) 1...10 创建从 1 到 9 的范围



回复 支持 反对

使用道具 举报

9

主题

17

帖子

91

积分

注册会员

Rank: 2

积分
91
 楼主| 发表于 2015-6-30 10:20:17 | 显示全部楼层
Ruby 运算符的优先级(高到低)
::常量解析运算符
[ ] [ ]=元素引用、元素集合
**指数
! ~ + -非、补、一元加、一元减(最后两个的方法名为 +@ 和 -@)
* / %乘法、除法、求模
+ -加法和减法
>> <<位右移、位左移
&位与
^ |位异或、位或
<= < > >=比较运算符
<=> == === != =~ !~相等和模式匹配运算符(!= 和 !~ 不能被定义为方法)
&&逻辑与
||逻辑或
.. ...范围(包含、不包含)
? :三元 if-then-else
= %= { /= -= += |= &= >>= <<= *= &&= ||= **=赋值
defined?检查指定符号是否已定义
not逻辑否定
or and逻辑组成

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|01BIM社区 - 最专业的BIM技术交流平台 ( 渝ICP备15000873号 )

GMT+8, 2018-12-17 20:57 , Processed in 0.058322 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表