1.一元运算符
运算符 | 名称 | 描述 |
+a | 求正 | a 的值本身。 |
-a | 求负 | a 的负值。 |
2.算术运算符
运算符 | 名称 |
a + b | 加法,字符串连接。 |
a - b | 减法 |
a * b | 乘法 |
a / b | 除法 |
a % b | 求余 |
a ** b | 求幂 |
3.赋值运算符
运算符 | 名称 |
---|---|
a = b | 赋值 |
a += b | 加法赋值 |
a -= b | 减法赋值 |
a *= b | 乘法赋值 |
a /= b | 除法赋值 |
a %= b | 求余赋值 |
a **= b | 求幂赋值 |
a &&= b | 逻辑与赋值 |
a ||= b | 逻辑或赋值 |
a &= b | 按位与赋值 |
a |= b | 按位或赋值 |
a ^= b | 按位异或赋值 |
a <<= b | 左移位赋值 |
a >>= b | 右移位赋值 |
4.相等性运算符
运算符 | 名称 | 描述 |
a == b | 相等 | 先进行强制类型转换,再比较 a 和 b 的值是否相等。如果值相等,则返回 true ,否则返回 false 。 |
a != b | 不相等 | 与 == 相反。 |
a === b | case相等性运算符 | 不同的类对 === 运算符的定义不一样,具体情况具体分析。注意:Ruby 语言不支持 !== 运算符。 |
a =~ b | 模式匹配运算符 | 不同的类对 =~ 运算符的定义不一样,具体情况具体分析。 |
a !~ b | 模式匹配运算符 | 与 =~ 相反。 |
5.关系比较运算符
运算符 | 名称 | 描述 |
---|---|---|
a < b | 小于 | 先进行强制类型转换,再比较 a 和 b 的值。如果 a 小于 b ,则返回 true ,否则返回 false 。 |
a <= b | 小于或等于 | 先进行强制类型转换,再比较 a 和 b 的值。如果 a 小于或等于 b ,则返回 true ,否则返回 false 。 |
a > b | 大于 | 先进行强制类型转换,再比较 a 和 b 的值。如果 a 大于 b ,则返回 true ,否则返回 false 。 |
a >= b | 大于或等于 | 先进行强制类型转换,再比较 a 和 b 的值。如果 a 大于或等于 b ,则返回 true ,否则返回 false 。 |
a <=> b | 宇宙飞船运算符 | 先进行强制类型转换,再比较 a 和 b 的值。如果 a 小于 b ,则返回 -1 。如果 a 等于 b ,则返回 0 。如果 a 大于 b ,则返回 1 。如果 a 和 b 不可比较,则返回 nil 。 |
6.布尔逻辑运算符
运算符 | 名称 | 描述 |
---|---|---|
!a | 逻辑非(NOT) | 如果 a 的计算结果为 nil 或 false ,则返回 true ,否则返回 false 。 |
not a | 逻辑非(NOT) | ! 运算符的低优先级版本。 |
a && b | 逻辑与(AND) | 如果 a 的计算结果为 nil 或 false ,则不计算 b 并返回 nil 或 false 。如果 a 的计算结果为除了 nil 和 false 以外的任何值,则继续计算 b 并返回 b 的返回值。 |
a and b | 逻辑与(AND) | && 运算符的低优先级版本。 |
a || b | 逻辑或(OR) | 如果 a 的计算结果为除了 nil 和 false 以外的任何值,则不计算 b 并返回 a 的返回值。如果 a 的计算结果为 nil 或 false ,则继续计算 b 并返回 b 的返回值。 |
a or b | 逻辑或(OR) | || 运算符的低优先级版本。 |
7.位运算符
运算符 | 名称 |
---|---|
~a | 按位非 NOT |
a & b | 按位与 AND |
a | b | 按位或 OR |
a ^ b | 按位异或 XOR |
a << b | 左移位 |
a >> b | 右移位 |
8.三元条件运算符
运算符 | 描述 |
a ? b : c | 如果 a 的计算结果为除了 nil 和 false 以外的任何值,则返回 b ,否则返回 c 。 |
9.分组运算符
运算符 | 描述 |
() | 分组作用 |
10.defined?运算符
运算符 | 描述 |
defined? a | 如果 a 已经定义了,则返回一个字符串,否则返回 nil 。 |
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/ruby/rubylang/36151.html