当前位置: 首页 > 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

相关文章:

scala基础学习_运算符

文章目录 scala运算符算术运算符关系运算符逻辑运算符位运算符其他运算符赋值运算符 scala运算符 在 Scala 中&#xff0c;运算符通常被定义为方法。这意味着你可以将运算符视为对象上的方法调用。以下是一些常用的运算符及其对应的操作&#xff1a; 算术运算符 &#xff1a…...

【ANGULAR网站开发】初始环境搭建

1. 初始化angular项目 1.1 创建angular项目 需要安装npm和nodejs&#xff0c;这边不在重新安装 直接安装最新版本的angular npm install -g angular/cli安装指定大版本的angular npm install -g angular/cli181.2 启动angular 使用idea启动 控制台启动 ng serve启动成功…...

【Java】面试题 并发安全 (2)

文章目录 可重入锁&#xff08;ReentrantLock&#xff09;知识总结1. 可重入锁概念与特点2. 基本语法与使用注意事项3. 底层实现原理4. 面试回答要点 synchronized与lock的区别死锁相关面试题讲解死锁产生的四个条件ConcurrentHashMap2. JDK1.7的ConcurrentHashMap结构添加数据…...

springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失

这个包丢失了 启动不了 起因是pom中加入了 <tomcat.version></tomcat.version>版本指定&#xff0c;然后idea自动编译后&#xff0c;包丢了&#xff0c;删除这个配置后再也找不回来&#xff0c; 这个包正常在 <dependency><groupId>org.springframe…...

React 组件的通信方式

在 React 应用开发中&#xff0c;组件之间的通信是构建复杂用户界面和交互逻辑的关键。正确地实现组件通信能够让我们的应用更加灵活和易于维护。以下是几种常见的 React组件通信方式。 一、父子组件通信 1. 通过 props 传递数据&#xff08;父组件向子组件传递数据&#xff0…...

WAV文件双轨PCM格式详细说明及C语言解析示例

WAV文件双轨PCM格式详细说明及C语言解析示例 一、WAV文件双轨PCM格式详细说明1. WAV文件基本结构2. PCM编码方式3. 双轨PCM格式详细说明二、C语言解析WAV文件的代码示例代码说明一、WAV文件双轨PCM格式详细说明 WAV文件是一种用于存储未压缩音频数据的文件格式,广泛应用于音频…...

【ES6复习笔记】数值扩展(16)

介绍 在 JavaScript 中&#xff0c;数值扩展提供了一些额外的功能&#xff0c;使得处理数值变得更加方便。本教程将介绍一些常用的数值扩展方法和属性。 1. Number.EPSILON Number.EPSILON 是 JavaScript 表示的最小精度。它的值接近于 2.2204460492503130808472633361816E-…...

百度热力图数据日期如何选择

目录 1、看日历2、看天气 根据研究内容定&#xff0c;一般如果研究城市活力的话&#xff0c;通常会写“非重大节假日&#xff0c;非重大活动&#xff0c;非极端天气等”。南方晴天不多&#xff0c;有小雨或者中雨都可认为没有影响&#xff0c;要不然在南方很难找到完全一周没有…...

Vue.js 高级组件开发:设计模式与实践

Vue.js 高级组件开发&#xff1a;设计模式与实践 引言一、组合式 API 与动态依赖注入1. 基于 provide/inject 的动态依赖2. 动态依赖注入与懒加载 二、动态渲染与自定义渲染函数1. 使用 Render 函数动态生成内容2. 自定义 vnode 操作 三、复杂场景下的动态表单生成与验证四、高…...

《一文读懂卷积网络CNN:原理、模型与应用全解析》

《一文读懂卷积网络CNN&#xff1a;原理、模型与应用全解析》 一、CNN 基本原理大揭秘&#xff08;一&#xff09;从人类视觉到 CNN 灵感&#xff08;二&#xff09;核心组件详解 二、经典 CNN 模型巡礼&#xff08;一&#xff09;LeNet-5&#xff1a;开山鼻祖&#xff08;二&a…...

MONI后台管理系统-数据敏感字段存储加密

前言&#xff1a;     在我们数据库中&#xff0c;存在很多的敏感数据&#xff0c;如用户表中&#xff0c;存在用户电话、身份证号、邮箱等属于用户的敏感信息&#xff0c;我们通常在存入数据库后&#xff0c;将其进行加密存储&#xff0c;以此来保证数据安全性。     …...

熟悉各类游戏设计模式的用途与限制,如 factory、strategy、mvc、object pool 等

良好的系统分析与设计能力要求开发者熟悉并正确运用各种设计模式来解决特定问题。设计模式是一种针对特定问题的通用解决方案&#xff0c;可提高代码的可复用性、可维护性和可扩展性。以下是对一些常见游戏设计模式的详细分析&#xff0c;包括其用途、限制和代码示例。 一、工厂…...

【RabbitMQ高级篇】消息可靠性问题(1)

目录 1.消息可靠性 1.1.生产者消息确认 1.1.1.修改配置 1.1.2.定义Return回调 1.1.3.定义ConfirmCallback 1.2.消息持久化 1.2.1.交换机持久化 1.2.2.队列持久化 1.2.3.消息持久化 1.3.消费者消息确认 1.3.1.演示none模式 1.3.2.演示auto模式 1.4.消费失败重试机制…...

ASP.NET |日常开发中常见问题归纳讲解

ASP.NET &#xff5c;日常开发中常见问题归纳讲解 前言一、性能问题1.1 数据库访问性能1.2 视图状态&#xff08;在ASP.NET Web Forms 中&#xff09; 二、安全问题2.1 SQL 注入2.2 跨站脚本攻击&#xff08;XSS&#xff09; 三、状态管理问题3.1 会话状态&#xff08;Session …...

【【深入浅出TinyRisc-v】】

深入浅出TinyRisc-v 本代码参考于 https://gitee.com/liangkangnan/tinyriscv 自己理解之后又重新写了一遍 tinyriscv.v // 涓嬮潰鏄鏁翠釜top妯″潡鐨勪功鍐? module tinyriscv(input clk ,input rst_n …...

常见的限流算法

常见的限流算法 限流的定义固定窗口算法滑动窗口算法漏桶算法&#xff08;推荐&#xff09;令牌桶算法(推荐)限流粒度本地限流&#xff08;单机限流&#xff09;分布式限流&#xff08;多机限流&#xff09;分布式限流的实现 限流的定义 限流&#xff0c;也称流量控制。是指系统…...

【Leetcode 每日一题】3159. 查询数组中元素的出现位置

问题背景 给你一个整数数组 n u m s nums nums&#xff0c;一个整数数组 q u e r i e s queries queries 和一个整数 x x x。 对于每个查询 q u e r i e s [ i ] queries[i] queries[i]&#xff0c;你需要找到 n u m s nums nums 中第 q u e r i e s [ i ] queries[i] q…...

xadmin后台首页增加一个导入数据按钮

xadmin后台首页增加一个导入数据按钮 效果 流程 1、在添加小组件中添加一个html页面 2、写入html代码 3、在urls.py添加导入数据路由 4、在views.py中添加响应函数html代码 <!DOCTYPE html> <html lang...

行为树详解(5)——事件驱动

【分析】 如果行为树的节点很多&#xff0c;那么会存在要经过很多节点才会走到动作节点的情况。显然&#xff0c;性能上不如状态机。 每帧都需要重新遍历一系列节点才会走到动作节点&#xff0c;而实际上很多条件节点在数帧内不会有变化&#xff0c;这是造成性能问题的重要原…...

3.若依前端项目拉取、部署、访问

因为默认RuoYi-Vue是使用的Vue2,所以需要另外去下载vue3来部署。 拉取代码 git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git 安装node才能执行npm相关的命令 执行命令npm install 如果npm install比较慢的话&#xff0c;需要添加上国内镜像 npm install --registrhttp…...

Perforce P4产品简介:无限扩展+全球协作+安全管控+工具集成(附下载)

本产品简介由Perforce中国授权合作伙伴——龙智编辑整理&#xff0c;旨在带您快速了解Perforce P4版本控制系统的强大之处。 世界级无限可扩展的版本控制系统 Perforce P4&#xff08;原Helix Core&#xff09;是业界领先的版本控制平台&#xff0c;备受19家全球Top20 AAA级游…...

【Netty系列】解决TCP粘包和拆包:LengthFieldBasedFrameDecoder

目录 如何使用&#xff1f; 1. 示例代码&#xff08;基于Netty&#xff09; 2. 关键参数解释 3. 协议格式示例 4. 常见配置场景 场景1&#xff1a;长度字段包含自身 场景2&#xff1a;长度字段在消息中间 5. 注意事项 举个例子 完整示例&#xff1a;客户端与服务端交互…...

NodeJS全栈开发面试题讲解——P6安全与鉴权

✅ 6.1 如何防止 SQL 注入 / XSS / CSRF&#xff1f; 面试官您好&#xff0c;Web 安全三大经典问题分别从不同层面入手&#xff1a; &#x1f538; SQL 注入&#xff08;Server端&#xff09; 原理&#xff1a;恶意用户将 SQL 注入查询语句拼接&#xff0c;导致数据泄露或破坏…...

css3 新增属性/滤镜效果/裁剪元素/图片适应盒子/定义和使用变量/恢复默认initial

从 CSS3 发布至今&#xff0c;CSS 标准引入了大量新特性&#xff0c;极大地丰富了前端开发的能力。以下是 CSS3 之后的重要新增属性、模块与特性总结&#xff0c;涵盖布局、动画、交互、视觉、选择器、单位等多个领域。 &#x1f3a8; 视觉与效果增强 属性/功能作用示例filte…...

Dify案例实战之智能体应用构建(一)

一、部署dify Windows安装Docker部署dify&#xff0c;接入阿里云api-key进行rag测试-CSDN博客 可以参考我的前面文章&#xff0c;创建一个本地dify或者直接dify官网使用一样的&#xff08;dify官网需要科学上网&#xff09; 二、Dify案例实战之智能体 2.1 智能面试官 需求;…...

【xmb】】内部文档148344599

这里写自定义目录标题 CyberDog 2 仿真智能物流配送系统 – 初赛设计报告摘要目录1 引言2 任务与需求分析3 系统总体设计4 核心算法与模块实现5 仿真测试与结果分析6 结论与展望 CyberDog 2 仿真智能物流配送系统 – 初赛设计报告 团队名称&#xff1a; &#xff08;晚点写&am…...

针对PostgreSQL中pg_wal目录占用过大的系统性解决方案

​一、问题现象与根本原因​ 当pg_wal目录占用超过预期&#xff08;如数十GB甚至占满磁盘&#xff09;&#xff0c;通常由以下原因导致 ​长事务未提交​&#xff1a;未完成的事务会阻塞WAL日志清理。​复制槽未释放​&#xff1a;逻辑复制或流复制槽未及时清理&#xff0c;导…...

如何通过数据分析优化项目决策

通过数据分析优化项目决策需从明确数据分析目标、选择适当的数据分析工具、确保数据质量、建立数据驱动文化等方面入手&#xff0c;其中&#xff0c;明确数据分析目标是优化决策过程的基础&#xff0c;只有清晰明确的数据分析目标才能指导有效的数据采集与分析&#xff0c;避免…...

powershell7.5@.net环境@pwsh7.5在部分windows10系统下的运行问题

文章目录 powershell7.5及更高版本和.net 9解决方案 powershell7.5及更高版本和.net 9 相对较新的.Net 9版本在老一些的windows10系统上(比如内核版本号:10.0.19044.1288以及之前的),由于默认启用了CET,导致编译运行失败,需要自己在项目中添加关闭CET的配置语句才能够顺利编译…...

贪心算法实战篇2

文章目录 前言序列问题摆动序列单调递增的数字 贪心解决股票问题买卖股票的最佳时机II 两个维度权衡问题分发糖果根据身高重建队列 前言 今天继续带大家进行贪心算法的实战篇2&#xff0c;本章注意来解答一些运用贪心算法的中等的问题&#xff0c;大家好好体会&#xff0c;怎么…...