当前位置: 首页 > article >正文

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

关系运算符

返回都是布尔值

  • ==:等于
  • !=:不等于
  • <:小于
  • <=:小于等于
  • >:大于
  • >=:大于等于
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)
  • !:逻辑非 (!)
val a = true
val b = false
val and = a && b  // false
val or = a || b   // true
val not = !a      // false

位运算符

  • &:按位与
  • |:按位或
  • ^:按位异或
  • <<:左移
  • >>:右移
  • >>>:无符号右移
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_~:一元按位非
val a = 42
val plusA = +a  // 42
val minusA = -a  // -42
val notA = !a   // 编译错误,因为 a 不是 Boolean 类型
val complementA = ~a  // -43 (二进制补码)

赋值运算符

  • =:赋值
  • +=:加并赋值
  • -=:减并赋值
  • *=:乘并赋值
  • /=:除并赋值
  • %=:取模并赋值
  • <<=:左移并赋值
  • >>=:右移并赋值
  • >>>=:无符号右移并赋值
  • &=:按位与并赋值
  • |=:按位或并赋值
  • ^=:按位异或并赋值
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

http://www.kler.cn/a/455172.html

相关文章:

  • --- 网络基础 ---
  • 数据结构二叉树
  • ARM 获取cpu个数
  • 遥望科技转型这一年
  • CloudDM 升级全新 SQL 审核架构,适配多种数据源
  • Wireshark 分析常见 Web 攻击的流量特征
  • 抖去推碰一碰系统技术源码/open SDK转发技术开发
  • GoldenDB 三节点集群部署安装
  • 基于Qcom虚拟化平台vdev virtio的EF BE实现(八)
  • Confluent Cloud Kafka 可观测性最佳实践
  • MySQL NaviCat 安装及配置教程(Windows)【安装】
  • 神经网络-SENet
  • 如何通过HTTP API分组检索Doc
  • 萤石网络:以用户为中心,构建全方位协同能力
  • 《第十四部分》WDG看门狗
  • vue和uniapp中,点击按钮 传递当前item对象,并从selectData数组中删除该条item数据
  • 如何查看服务器内存占用情况?
  • 交换机与路由器的区别
  • 04、Spring MVC
  • Santa Claus 2 (st表的lower_bound用法)