
🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
| 专栏名称 | 专栏介绍 |
| 本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 | |
| 本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! | |
| 全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 | |
| 本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 | |
| 本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 | |
| 本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

Scala 提供了丰富的运算符来完成各种数学、逻辑和位操作。由于搜索结果中的信息非常丰富但稍显零散,我结合自己的知识,用表格为你梳理了 Scala 中主要的运算符类型、含义和示例,方便你快速查阅。
📊 运算符概览
| 类型 | 运算符 | 描述/规则 | 示例 | 结果/说明 |
|---|---|---|---|---|
| 算术运算符 |
| 加法;也表示正号或字符串拼接 |
|
|
|
| 减法;也表示负号 |
|
| |
|
| 乘法 |
|
| |
|
| 整数除法:整数相除结果仍为整数(舍小数);有浮点数参与则结果为浮点 |
|
| |
|
| 取模(取余) |
|
| |
|
| 幂运算(部分环境或通过扩展支持) |
|
| |
| 关系运算符 |
| 比较值相等(类似 Java 的 |
|
|
|
| 不等于 |
|
| |
|
| 大于 |
|
| |
|
| 小于 |
|
| |
|
| 大于等于 |
|
| |
|
| 小于等于 |
|
| |
|
| 比较引用是否相同(类似 Java 的 |
| ||
| 逻辑运算符 |
| 逻辑与(短路) |
|
|
| ` | ` | 逻辑或(短路) | ||
|
| 逻辑非 |
|
| |
| 位运算符 |
| 按位与 |
|
|
| ` | ` | 按位或 | `12 | |
|
| 按位异或 |
|
| |
|
| 按位取反 |
|
| |
|
| 左移 |
|
| |
|
| 带符号右移 (保留符号位) |
|
| |
|
| 无符号右移 (高位补 0) |
| 很大的正数 | |
| 赋值运算符 |
| 简单赋值 |
| |
|
| = | 复合赋值 (Op=) |
|
⚠️ 特别注意
-
++和--:Scala 没有++和--运算符。递增或递减需使用+= 1或-= 1:counter += 1。 -
==和eq:这是最容易混淆的一点。-
== 在 Scala 中比较的是值是否相等(对于对象来说,相当于 Java 的equals方法)。这是最常用的比较方式。 -
eq 比较的是引用是否指向同一个对象(相当于 Java 的==)。通常用于需要精确判断是否是同一个实例的场景。
val s1 = "Hello" val s2 = "Hello" val s3 = new String("Hello") println(s1 == s2) // true, 值相等 println(s1 == s3) // true, 值相等 println(s1 eq s2) // true (由于字符串驻留,可能指向同一对象) println(s1 eq s3) // false, 肯定是不同的对象 -
-
整数除法:
10 / 3结果是3,而不是3.333...。若需浮点结果,需确保至少有一个操作数是浮点数:10.0 / 3或10 / 3.0。 -
运算符本质:在 Scala 中,运算符不是特殊的语法,而是普通的方法。
a + b实际上是a.+(b)的简写形式。这意味着你可以为自己的类定义运算符。
🧠 运算符优先级
当表达式中有多个运算符时,优先级高的先计算。从高到低大致如下(部分):
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 |
| 左到右 |
| 2 |
| 右到左 |
| 3 |
| 左到右 |
| 4 |
| 左到右 |
| 5 |
| 左到右 |
| 6 |
| 左到右 |
| 7 |
| 左到右 |
| 8 |
| 左到右 |
| 9 |
| 左到右 |
| 10 | ` | ` (按位或) |
| 11 |
| 左到右 |
| 12 | ` | |
| 13 |
| =` (赋值) |
| 14 |
| 左到右 |
记不住也没关系,多用 ()来明确指定计算顺序是最稳妥和清晰的做法。
💡 总结
Scala 的运算符大部分与其他语言类似,但有一些重要区别:
-
牢记
==比较值,eq比较引用。 -
没有
++和--,用+= 1和-= 1替代。 -
整数除法会截断小数部分。
-
所有运算符本质上是方法调用,这体现了 Scala 面向对象和函数式融合的特点。
希望这份梳理能帮助你更好地理解和使用 Scala 运算符!
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

4114

被折叠的 条评论
为什么被折叠?



