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

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.lryc.cn/news/511557.html

相关文章:

  • 【ANGULAR网站开发】初始环境搭建
  • 【Java】面试题 并发安全 (2)
  • springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
  • React 组件的通信方式
  • WAV文件双轨PCM格式详细说明及C语言解析示例
  • 【ES6复习笔记】数值扩展(16)
  • 百度热力图数据日期如何选择
  • Vue.js 高级组件开发:设计模式与实践
  • 《一文读懂卷积网络CNN:原理、模型与应用全解析》
  • MONI后台管理系统-数据敏感字段存储加密
  • 熟悉各类游戏设计模式的用途与限制,如 factory、strategy、mvc、object pool 等
  • 【RabbitMQ高级篇】消息可靠性问题(1)
  • ASP.NET |日常开发中常见问题归纳讲解
  • 【【深入浅出TinyRisc-v】】
  • 常见的限流算法
  • 【Leetcode 每日一题】3159. 查询数组中元素的出现位置
  • xadmin后台首页增加一个导入数据按钮
  • 行为树详解(5)——事件驱动
  • 3.若依前端项目拉取、部署、访问
  • Debian操作系统相对于Ubuntu有什么优势吗?
  • 【漏洞复现】CVE-2015-3337 Arbitrary File Reading
  • win10、win11-鼠标右键还原、暂停更新
  • FFmpeg来从HTTP拉取流并实时推流到RTMP服务器
  • Quo Vadis, Anomaly Detection? LLMs and VLMs in the Spotlight 论文阅读
  • Rust : tokio中select!
  • 【hackmyvm】hacked靶机wp
  • MaixBit k210学习记录
  • Wordperss漏洞 DeDeCMS漏洞
  • 如何构建有效的AI Agents:从复杂到简约——深度解读Claude实践总结《Building effective agents》(上)
  • git status 耗时