跳至主要内容

Scala 中的运算符

了解 Scala 编程语言中使用的不同运算符。
· 6分钟 阅读

使用 AI 探索

注意:本教程是 Scala 教程系列的延续。如果您尚未阅读 Scala 入门指南 和 Scala 中的 IF ELSE,请先查看。

简介

运算符是一个符号或函数,表示要对一个或多个操作数执行某种操作。运算符有很多不同类型,而操作数可以理解为变量。运算符是一切编程语言的基础。借助运算符,我们可以对操作数执行各种操作。运算符会指示编译器执行诸如数学(算术)、逻辑、赋值等操作,并最终输出结果。

在许多编程语言(包括 Scala)中都会使用不同类型的运算符,主要包括:

  • 关系运算符
  • 算术运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符

您将从理论和代码两个层面学习上述运算符。

关系运算符

关系运算符主要用于比较两个或多个变量。如果您读过 Scala 中的 IF ELSE 教程,就会注意到您在 IF ELSE 条件中用到了关系运算符的威力。

这些关系运算符会返回一个布尔值,即 True 或 False。

以下是用于应用到变量上的关系运算符符号(来源:Operators in Scala):

  • 等于(==):检查两个给定变量或操作数是否相等。若相等则返回 true,否则返回 false。

  • 不等于(!=):与 等于 运算符相反,也可理解为 等于 的布尔补运算。检查两个给定操作数是否相等。若不相等则返回 true,否则返回 false。

  • 大于(>):检查第一个操作数是否大于第二个操作数。若大于则返回 true,否则返回 false。

  • 小于(<):与 大于 运算符相反,检查第一个操作数是否小于第二个操作数。若小于则返回 true,否则返回 false。

  • 大于等于(>=):检查第一个操作数是否大于或等于第二个操作数。若是则返回 true;否则返回 false。

  • 小于等于(<=):与 大于等于 运算符相反。检查第一个操作数是否小于或等于第二个操作数。若是则返回 true;否则返回 false。

下面通过一段代码来理解关系运算符。

code


要运行上述代码,只需输入 scala relation_op.scala,您应能看到如下所示的输出。

output


接下来,您将学习逻辑运算符。

逻辑运算符

它们多用于条件语句,如 IF ELSE 语句,或 while 循环。它可以将两个或更多条件合并,或对所考虑条件的输出取反。(来源:Operators in Scala)

  • 逻辑与:当两个条件都满足时返回 true;否则返回 false。使用 “and” 可作为 && 运算符的替代。

  • 逻辑或:当任一(或两个)条件满足时返回 true;否则返回 false。使用 “or” 可作为 || 运算符的替代。

  • 逻辑非:当所考虑的条件不满足时返回 true;否则返回 false。使用 “not” 可作为 ! 运算符的替代。

operator
output

算术(数学)运算符

顾名思义,算术运算符用于在操作数之间执行数学运算。

以下是 Scala 中最常用的算术运算符(来源:Operators in Scala):

  • 加法:对两个变量/操作数执行加法 $(+)$。

  • 减法:对两个操作数执行减法 $(-)$。

  • 乘法:对两个操作数执行乘法 $(\times)$。

  • 除法:用第一个操作数除以第二个操作数 $(/)$。

  • 幂运算:返回操作数的指数(幂)。即将一个操作数提升为第二个操作数的幂 $(x^y)$ 或 $(x**y)$。

  • 取模:当第一个操作数被第二个操作数除时,余数称为模 (%)。

我们快速写一小段代码并分析结果。

在这个示例中,您将使用列表而不是仅定义变量。与变量不同,List 可以包含 n 个不同数据类型的值,它在 Scala 中表示链表,并且是不可变的。您将对两个列表执行算术运算,而不是对两个变量。

output

赋值运算符

赋值运算符用于将值赋给变量。为此,会将右侧操作数视为一个值,而左侧操作数通常是要接收该值的变量。该值可以有不同的数据类型,如 int、float 等。变量与值的数据类型应相同,否则编译器会报错。(来源:Operators in Scala)

  • 简单赋值:用于将值赋给变量 $(=)$。

  • 加并赋值:将左操作数与右操作数相加,并将结果赋给左侧变量 $(+=)$。

  • 减并赋值:类似于加并赋值。将左操作数减去右操作数,并将结果赋给左侧变量 $(-=)$。

  • 乘并赋值:将左操作数与右操作数相乘,然后将结果赋给左侧变量 $(\times =)$。

  • 除并赋值:将左操作数除以右操作数,最后将结果赋给左侧变量 $(/=)$。

类似地,还有更多此类赋值运算符。最后,让我们写段代码来理解它们在程序中的工作方式。

code
output

总结

恭喜您完成本篇 Scala 教程。

如果您已经阅读前两篇教程,那么至此您已覆盖了 Scala 中的三个不同主题。一个很有价值的练习是将这三篇中获得的技能综合起来,从零开始编写一个 Scala 程序。这不仅能增强您的信心,也能让您在学习更高级的 Scala 主题时更加轻松。

参考资料:

如对本教程有任何疑问,欢迎在下方评论区提问。

主题