scala基础学习_运算符

文章目录

scala运算符

在 Scala 中,运算符通常被定义为方法。这意味着你可以将运算符视为对象上的方法调用。以下是一些常用的运算符及其对应的操作:

算术运算符

  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • %:取模(余数)

例如:

scala 复制代码
val a = 10
val b = 3
val sum = a + b  // 13
val diff = a - b  // 7
val prod = a * b  // 30
val quot = a / b  // 3
val rem = a % b   // 1

关系运算符

返回都是布尔值

  • ==:等于
  • !=:不等于
  • <:小于
  • <=:小于等于
  • >:大于
  • >=:大于等于
scala 复制代码
val a = 10
val b = 20
val isEqual = a == b  // false
val isNotEqual = a != b  // true
val isLess = a < b  // true
val isLessOrEqual = a <= b  // true
val isGreater = a > b  // false
val isGreaterOrEqual = a >= b  // false

逻辑运算符

返回布尔值

  • &&:逻辑与 (and)
  • ||:逻辑或 (or)
  • !:逻辑非 (!)
scala 复制代码
val a = true
val b = false
val and = a && b  // false
val or = a || b   // true
val not = !a      // false

位运算符

  • &:按位与
  • |:按位或
  • ^:按位异或
  • <<:左移
  • >>:右移
  • >>>:无符号右移
scala 复制代码
val a = 12  // 二进制: 1100
val b = 10  // 二进制: 1010
val and = a & b  // 二进制: 1000, 十进制: 8
val or = a | b   // 二进制: 1110, 十进制: 14
val xor = a ^ b  // 二进制: 0110, 十进制: 6
val leftShift = a << 2  // 二进制: 110000, 十进制: 48
val rightShift = a >> 2  // 二进制: 11, 十进制: 3
val unsignedRightShift = -a >>> 2  // 二进制: 11111111111111111111111111111101 >> 2, 十进制: 1073741821

其他运算符

  • unary_+:一元加(通常不改变数值)
  • unary_-:一元减(取反)
  • unary_!:一元非(逻辑非,支持布尔值)
  • unary_~:一元按位非
scala 复制代码
val a = 42
val plusA = +a  // 42
val minusA = -a  // -42
val notA = !a   // 编译错误,因为 a 不是 Boolean 类型
val complementA = ~a  // -43 (二进制补码)

赋值运算符

  • =:赋值
  • +=:加并赋值
  • -=:减并赋值
  • *=:乘并赋值
  • /=:除并赋值
  • %=:取模并赋值
  • <<=:左移并赋值
  • >>=:右移并赋值
  • >>>=:无符号右移并赋值
  • &=:按位与并赋值
  • |=:按位或并赋值
  • ^=:按位异或并赋值
scala 复制代码
var a = 10
a += 5  // a 现在是 15  a = a+5
a -= 3  // a 现在是 12
a *= 2  // a 现在是 24
a /= 4  // a 现在是 6
a %= 4  // a 现在是 2
相关推荐
马优晨10 分钟前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
a1117762 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao2 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
人邮异步社区2 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大3 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai3 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜3 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa3 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
一次旅行3 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化
你想知道什么?4 小时前
线性回归-学习笔记
笔记·学习·线性回归