ruby 运算符

来源:互联网 发布:xampp数据库配置文件 编辑:程序博客网 时间:2024/06/06 03:53

Ruby 算术运算符

假设变量 a 的值为 10,变量 b 的值为 20,那么:

运算符描述实例+加法 - 把运算符两边的操作数相加a + b 将得到 30-减法 - 把左操作数减去右操作数a - b 将得到 -10*乘法 - 把运算符两边的操作数相乘a * b 将得到 200/除法 - 把左操作数除以右操作数b / a 将得到 2%求模 - 把左操作数除以右操作数,返回余数b % a 将得到 0**指数 - 执行指数计算a**b 将得到 10 的 20 次方



Ruby 比较运算符

假设变量 a 的值为 10,变量 b 的值为 20,那么:

运算符描述实例==检查两个操作数的值是否相等,如果相等则条件为真。(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。



uby 赋值运算符

假设变量 a 的值为 10,变量 b 的值为 20,那么:

运算符描述实例=简单的赋值运算符,把右操作数的值赋给左操作数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




Ruby 并行赋值

Ruby 也支持变量的并行赋值。这使得多个变量可以通过一行的 Ruby 代码进行初始化。例如:

a = 10b = 20c = 30

使用并行赋值可以更快地声明:

a, b, c = 10, 20, 30

并行赋值在交换两个变量的值时也很有用:

a, b = b, c

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


Ruby 逻辑运算符

下表列出了 Ruby 支持的逻辑运算符。

假设变量 a 的值为 10,变量 b 的值为 20,那么:

运算符描述实例and称为逻辑与运算符。如果两个操作数都为真,则条件为真。(a and b) 为真。or称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。(a or b) 为真。&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。(a && b) 为真。||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。(a || b) 为真。!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。!(a && b) 为假。not称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。not(a && b) 为假。


Ruby 三元运算符

有一个以上的操作称为三元运算符。第一个计算表达式的真假值,然后根据这个结果决定执行后边两个语句中的一个。条件运算符的语法如下:

运算符描述实例? :条件表达式如果条件为真 ? 则值为 X : 否则值为 Y


Ruby 范围运算符

在 Ruby 中,序列范围用于创建一系列连续的值 - 包含起始值、结束值(视情况而定)和它们之间的值。

在 Ruby 中,这些序列是使用 ".." 和 "..." 范围运算符来创建的。两点形式创建的范围包含起始值和结束值,三点形式创建的范围只包含起始值不包含结束值。

运算符描述实例..创建一个从开始点到结束点的范围(包含结束点)1..10 创建从 1 到 10 的范围...创建一个从开始点到结束点的范围(不包含结束点)1...10 创建从 1 到 9 的范围


Ruby defined? 运算符

defined? 是一个特殊的运算符,以方法调用的形式来判断传递的表达式是否已定义。它返回表达式的描述字符串,如果表达式未定义则返回 nil



Ruby 点运算符 "." 和双冒号运算符 "::"

您可以通过在方法名称前加上模块名称和一条下划线来调用模块方法。您可以使用模块名称和两个冒号来引用一个常量。

:: 是一元运算符,允许在类或模块内定义常量、实例方法和类方法,可以从类或模块外的任何地方进行访问。

请记住:在 Ruby 中,类和方法也可以被当作常量。

您只需要在表达式的常量名前加上 :: 前缀,即可返回适当的类或模块对象。

如果未使用前缀表达式,则默认使用主 Object 类。

下面是两个实例:

MR_COUNT = 0        # 定义在主 Object 类上的常量module Foo  MR_COUNT = 0  ::MR_COUNT = 1    # 设置全局计数为 1  MR_COUNT = 2      # 设置局部计数为 2endputs MR_COUNT       # 这是全局常量puts Foo::MR_COUNT  # 这是 "Foo" 的局部常量 


0 0