的操作者是代表是在程序中执行的操作的符号。运算符告诉编译器执行特定操作,每个运算符都与一个关联,并且具有唯一的标识码。运算符在编程中起着重要作用,它们被用来生成执行任务的表达式。它定义了操作数之间的运算,基于它们的运算符可以是一个,两个或三个操作数。
Scala是在Scala中进行编程时可以使用的大量运算符。他们是:
算术运算符
关系运算符
逻辑运算符
按位运算符
赋值运算符
为了在Scala中执行算术运算,定义了算术运算符。Scala中定义了以下算术运算符,
运算符 | 描述 |
---|---|
加法运算符(+) | 将两个操作数相加 12 + 45 = 57 |
减法运算符(-) | 从第一个 23-4 = 19减去第二个运算符 |
乘法运算符(*) | 将两个操作数相乘 25 * 6 = 150 |
除法运算符(/) | 将第一个运算符除以第二 124/4 = 31 |
模量(%) | 当第一个运算符除以第二个 123%5 = 3时给出余数 |
关系运算符用于定义两个运算符之间的比较。也称为比较运算符。以下是Scala中的关系运算符,
运算符 | 描述 |
---|---|
等于(==) | 比较两个操作数是否相等,如果是,则输出TRUE,否则输出FALSE 12 == 34→FALSE 23 ==(46/2)→TRUE |
不等于(!=) | 比较两个操作数是否不相等,如果是,则输出TRUE,否则输出FALSE 12!= 34→TRUE 23!=(46/2)→FALSE |
大于(>) | 检查操作数1是否大于操作数2。如果是,则输出true,否则输出false 34> 2→TRUE 34> 334→FALSE |
大于等于(> =) | 检查操作数1是否大于或等于操作数2。如果是,则输出true,否则返回false 34> = 2→TRUE 34> = 334→FALSE 34> = 34→TRUE |
小于(<) | 检查操作数1是否小于操作数2。如果是,则输出true,否则输出false 34 <2→FALSE 34 <334→TRUE |
小于等于(<=) | 检查操作数1是否小于或等于操作数2。如果是,则输出true,否则返回false 34 <= 2→FALSE 34 <= 334→TRUE 34 <= 34→TRUE |
逻辑运算符用于组合逻辑输出(true / False)或反向转换为条件或操作数的逻辑输出。Scala定义了以下逻辑运算符,
运算符 | 描述 |
---|---|
和(&&或and) | 如果两个操作数的逻辑值为TRUE,则输出TRUE,否则输出FALSE。 |
或(||或或) | 如果两个操作数的逻辑值为FALSE,则输出FALSE,否则输出TRUE。 |
不(!或不) | 它将操作数的输出取反。 |
和,或和,而不是基于不同操作数值的运算符的结果:
一种 | 乙 | A && B | A || 乙 | !一种 |
真正 | 真正 | 真正 | 真正 | 假 |
真正 | 假 | 假 | 真正 | 假 |
假 | 真正 | 假 | 真正 | 真正 |
假 | 假 | 假 | 假 | 真正 |
它适用于操作数的位。它对操作数的每一位进行运算以提供输出。以下是Scala中有效的按位运算符,
运算符 | 描述 |
---|---|
按位与(&) | 它需要两个操作数的每一位,并对它执行AND操作。 2&6 = 2-> 010&110 = 010 |
按位或(|) | 它需要两个操作数的每一位并对其执行“或”运算。 2 | 6 = 6-> 0010 | 0110 = 0110 |
按位XOR(^) | 它需要两个操作数的每一位,并对它执行XOR操作。 当两个操作数不同时,XOR运算给出1输出。 2 ^ 6 = 4-> 0010 ^ 0110 = 0100 |
按位左移(<<) | 它将操作数1的位左移n位;n由操作数2指定 .12 << 3 = 96-> 0000 1100 << 3 = 0110 0000 |
按位右移(>>) | 它将操作数1的位右移n位;n由操作数2指定 .12 >> 3 = 129-> 0000 1100 >> 3 = 1000 0001 |
按位右移零填充(>>>) | 它将操作数1的位移位n位;n由操作数2指定。并将移位后的位填充0。12 >>> 3 = 1-> 0000 1100 >>> 3 000 0001 |
按位补码(〜) | 它占用操作数的每一位并反转其位。 〜12 = 243->〜(0000 1100)= 1111 0011 |
赋值运算符用于将值赋给变量。变量在运算符的左侧,而值在运算符的右侧。双方的数据类型必须相同,以避免程序出错。
以下是Scala中的有效赋值运算符,
运算符 | 描述 |
---|---|
简单分配(=) | 它只是将左侧的值分配给右侧的变量。 a = 2432; |
添加并分配(+ =) | 它将左值添加到右值。 c + = 32-> c = c + 32 |
减去并分配(-=) | 从右边的值中减去左边的值。 c-= 32-> c = c-32 |
相乘并赋值(* =) | 它将左边的值与右边的值相乘。 c * = 32-> c = c * 32 |
划分并分配(/ =) | 它将左值与右值相除。 c / = 32-> c = c / 32 |
剩余并分配(%=) | 它找到右值的模数除以左值。 c%= 32-> c = c%32 |
左移并分配(>> =) | 它将左操作数的位移位n,由右运算符定义n,并将此值分配给左运算符。 我>> = 6->我=我>> 6 |
右移并分配(<< =) | 它将右操作数的位移位n,由右运算符定义n,并将此值分配给左运算符。 我<< = 6->我=我<< 6 |
按位与赋值(&=) | 它执行左操作数和右操作数的按位和运算,并将此值分配给左运算符。 我&= 6->我=我&6 |
按位异或分配(^ =) | 它执行左操作数和右操作数的按位异或运算,并将此值分配给左运算符。 i ^ = 6-> i = i&6 |
所有运算符都按原样应用在Scala中,您可以轻松地使用它们,但是要避免错误的操作数数据类型应该相同。