Ruby 操作符
操作符是一个符号,代表了对一个或多个操作数进行的操作。操作符是任何编程语言的基础。操作符允许我们对操作数进行不同类型的操作。在Ruby中使用的不同类型的运算符如下:
算术运算符
这些运算符用于对操作数进行算术/数学运算。
- 加法(+): 运算符将两个操作数相加。例如, x+y
- 减法(-): 运算符减去两个操作数。例如, x-y
- 乘法(
*
): 运算符将两个操作数相乘。例如, **x*y ** - 除法(/): 运算符将第一个操作数除以第二个操作数。例如, x/y
- 模数(%): 当第一个操作数除以第二个操作数时,运算符返回余数。例如, x%y
- 指数(
**
): 操作者返回操作数的指数(幂)。例如,x**y
示例:
输出:
比较运算符
比较运算符或关系运算符用于两个值的比较。让我们逐一来看看:
- Equal To(==) 运算符检查两个给定的操作数是否相等。如果是,它返回真。否则,它将返回错误。例如, 5==5 将返回真。
- 不等于(!=) 操作符检查两个给定的操作数是否相等。如果不是,它返回真。否则返回false。它是’ ==’ 运算符的精确布尔值补充。例如, 5!=5 将返回false。
- 大于( >)运算符检查第一个操作数是否大于第二个操作数。如果是这样,它返回真。否则返回false。例如, **6 >5 **将返回true。
- 小于( <)运算符检查第一个操作数是否小于第二个操作数。如果是,则返回真。否则返回false。例如, **6 <5 **将返回false。
- **Greater Than Equal To( >=) **操作符检查第一个操作数是否大于或等于第二个操作数。如果是,它返回真。否则它返回false。例如, **5 >=5 **将返回true。
- **Less Than Equal To( <=) **操作符检查第一个操作数是否小于或等于第二个操作数。如果是,它返回真。否则返回false。例如, **5 <=5 **也会返回真。
- 组合 运算符 **( <=>) **当第一操作数等于第二操作数时返回0,当第一操作数大于第二操作数时返回1,当第一操作数小于第二操作数时返回-1。
- Case Equality Operator(===) 它将测试case语句中的平等性。
- ‘.eql?’ 如果接收器和参数的类型相同且数值相等,该操作符返回真。
- ‘. Equal? ‘ 如果接收方和参数有相同的对象ID,该操作符返回true。
例如:
输出:
逻辑运算符
它们被用来结合两个或更多的条件/约束,或补充考虑原始条件的评估。它们描述如下:
- **逻辑AND( &&) **运算符在考虑的两个条件都满足时返回真。否则,它返回假。使用 “和 “ 是&&运算符的一种替代方法。例如,当a和b都为真(即非零)时, **a && b **返回真。
- 逻辑OR(||) 运算符在其中一个(或两个)条件得到满足时返回真。否则就会返回错误。使用 “或 “ 是||运算符的一种替代方法。例如, a||b 如果a或b中有一个是真的(即非零),则返回真。当然,当a和b都为真时,它返回真。
- 逻辑NOT(!): 操作符在所考虑的条件不满足时返回真。否则,它返回假。使用 “not “ 是!操作符的一种替代方法。例如, !”真 “返回 “假”。
示例:
输出:
赋值运算符
赋值运算符用于将一个值赋给一个变量。赋值运算符的左边操作数是一个变量,赋值运算符的右边操作数是一个值。右边的值必须与左边的变量具有相同的数据类型,否则编译器会产生错误。
不同类型的赋值运算符如下所示:
- 简单赋值(=) :运算符是最简单的赋值运算符。该运算符用于将右边的值赋给左边的变量。
- 加和赋值(+=) 运算符用于将左边的操作数与右边的操作数相加,然后将其赋给左边的变量。
- 减法和赋值(-=) 运算符用于将左边的操作数与右边的操作数相减,然后将其分配给左边的变量。
- 乘法和赋值
(*=)
运算符用于将左操作数与右操作数相乘,然后将其分配给左边的变量。 - Divide AND Assignment (/=) 操作符用于将左边的操作数与右边的操作数相除,然后将其分配给左边的变量。
- Modulus AND Assignment (%=) 操作符用于将左边的操作数与右边的操作数进行模数分配,然后将其分配给左边的变量。
- 指数与赋值(=)** 运算符用于将左操作数的幂提高到右操作数,并将其赋给左边的变量。
例如:
输出:
位操作符
在Ruby中,有6个位操作符,它们在位级工作或用于执行逐位操作。以下是分位运算符:
- **Bitwise AND ( &) **以两个数字为操作数,对两个数字的每一个位进行AND。只有当两个比特都是1时,AND的结果才是1。
- Bitwise OR (|) 以两个数字为操作数,对两个数字的每一个位进行OR操作。OR的结果是1,任何两个位都是1。
- Bitwise XOR (^) 以两个数字为操作数,对两个数字的每一个位进行XOR。如果两个比特不同,XOR的结果是1。
- **左移 ( << **) 以两个数字为操作数,对第一个操作数的位进行左移,第二个操作数决定移位的数量。
- **右移 ( >> **) 取两个数字,右移第一个操作数的位,第二个操作数决定要移的位数。
- 单一补数 (~) 该操作符取一个数字,用于执行8位的补数操作。
例如:
输出:
三元运算符
这是一个条件运算符,是if-else语句的简写版本。它有三个操作数,因此被称为三元操作数。它将根据布尔表达式的值返回两个值中的一个。
语法:
解释:
condition: 它被评估为真或假。
如果该条件为真
first_expression被评估并成为结果。
如果条件是假的。
第二个表达式被评估并成为结果。
例如:
输出:
范围操作符
在Ruby中,范围操作符被用来创建指定元素的指定序列范围。在Ruby中,有两个范围操作符,如下:
- 双点(…) 运算符用于创建一个指定的序列范围,其中开始和结束的元素都将被包含。例如,7 … 10将创建一个像7,8,9,10的序列。
- 三点(…)运算符用于创建一个指定的序列范围,其中只有起始元素是包含的,而结束元素是排斥的。例如,7 … 10将创建一个像7,8,9的序列。
例如:
输出:
defined? 操作符
defined? 操作符是一个特殊的操作符,用于检查传递的表达式是否被定义。如果传递的参数没有被定义,它返回 nil ,否则,它返回定义该参数的字符串。
语法:
例如:
输出:
点”. “和双冒号”::”操作符
- 点(.) 操作符用于访问一个类的方法。
- 双冒号(::) 操作符用于访问一个类或模块中定义的常量、类方法和实例方法到类或模块之外的任何地方。需要记住的一点是,在Ruby中,类和方法可以被认为是常量,同时在: : Const_name前加上表达式,返回相应的类对象。如果没有使用前缀表达式,那么默认情况下,将使用主对象类。
例如:
输出: