Scala_【2】变量和数据类型
第二章
- 注释
- 标识符的命名规范
- 命名规则
- 关键字
- 变量
- 字符串输出
- 数据类型关系
- 变量和数据类型
- 整数类型(Byte、Short、Int、Long)
- 浮点类型(Float、Double)
- 字符类型(Char)
- 布尔类型(Boolean)
- 空类型
- 数值类型间转换
- 数值类型自动转换
- 强制类型转换
- 数值类型和String类型间转换
注释

标识符的命名规范
Scala对各种变量、方法、函数等命名时使用的字符序列称为标识符
命名规则
- 以字母或者下划线开头,后接字母、数字、下划线
- 以操作符开头,且只包含操作符(+ - * / # !等)
- 第一种和第二种拼接,第一种在前,二者以下划线分隔
- 用反引号`…`包括的任意字符串,即使是关键字(39个)也可以
关键字
Scala关键字(39个)
- package, import, class, object, trait, extends, with, type, for
- private, protected, abstract, sealed, final, implicit, lazy, override
- try, catch, finally, throw
- if, else, match, case, do, while, for, return, yield
- def, val, var
- this, super
- new
- true, false, null
变量
基本语法: var | val 变量名 [: 变量类型] = 变量值
说明:在Scala中声明一个变量时,可以不指定类型,编译器根据值确定
字符串输出
数据类型关系
- Scala中一切数据都是对象,都是Any的子类
- Scala中数据类型分为两大类:数值类型(AnyVal)、引用类型(AnyRef),不管是值类型还是引用类型都是对象
- Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)
- Scala特殊的类型之Null,它只有一个实例就是Null,它是所有引用类型(AnyRef)的子类
- Scala特殊类型之Nothing,是所有数据类型的子类,主要在一个函数没有正常返回值时使用
变量和数据类型
整数类型(Byte、Short、Int、Long)
| 数据类型 | 描述 |
|---|---|
| Byte [1] | 8位有符号补码整数。数值区间为 -128 到 127 |
| Short [2] | 16位有符号补码整数。数值区间为 -32768 到 32767 |
| Int [4] | 32位有符号补码整数。数值区间为 -2147483648 到 2147483647 |
| Long [8] | 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807 |

浮点类型(Float、Double)
| 数据类型 | 描述 |
|---|---|
| Float [4] | 32位,IEEE 754标准的单精度浮点数 |
| Double [8] | 64位, IEEE 754标准的双精度浮点数 |

字符类型(Char)
字符类型可以表示单个字符,字符类型是Char,16位无符号Unicode字符(2个字节),区间值为U+0000到U+FFFF。

布尔类型(Boolean)
- 布尔类型也叫Boolean类型,Booolean类型数据只允许取值true和false
- boolean类型占1个字节。
空类型
| 数据类型 | 描述 |
|---|---|
| Unit | 表示无值,用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成() |
| Null | 所有AnyRef的子类型,Null 类型只有一个实例值null |
| Nothing | 所有类型的子类型,是一个象征意义,用于辅助类型推导 |

数值类型间转换
数值类型自动转换
当Scala程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数值类型,这个就是自动类型转换(隐式转换)

强制类型转换
自动类型转换的逆过程,将精度大的数值类型转换为精度小的数值类型。使用时要加上强制转函数,但可能造成精度降低或溢出,格外要注意

数值类型和String类型间转换

上一章
Scala_【1】概述
下一章
Scala_【3】运算符
相关文章:
Scala_【2】变量和数据类型
第二章 注释标识符的命名规范命名规则关键字 变量字符串输出数据类型关系变量和数据类型整数类型(Byte、Short、Int、Long)浮点类型(Float、Double)字符类型(Char)布尔类型(Boolean)…...
u3d中JSON数据处理
一.认识JSON 1.1 Json概述 JSON(JavaScript Object Notation,JavaScript对象表示法)JSON和XML是比较类似的技术,都是用来存储文本信息数据的;相对而言,JSON比XML体积更小巧,但是易读性不如XML…...
idea 安装插件(在线安装、离线安装)
目录 在线安装 离线安装 在线安装 1、打开IntelliJ IDEA 2024.x软件, 点击file-Settings 2、点击搜索框,输入plugins,找到plugins列,输入xxx软件--点击install 安装 3、重启idea 离线安装 1、在官网上下载插件包 (1&…...
springboot maven 构建 建议使用 --release 21 而不是 -source 21 -target 21,因为它会自动设置系统模块的位置
使用 --release 选项代替 -source 和 -target 是一种更安全、更兼容的方式,特别是在构建使用较新版本 JDK 的项目时。以下是详细解释和建议: 1. 为什么推荐使用 --release 问题点: 使用 -source 和 -target 标志时,仅设置了代码的语言级别和字节码目标版本,但编译器仍可…...
离散数学 复习 详细(子群,元素的周期,循环群,合同)
子群: 定义: 设(G,)是一个群,H属于G,如果(H,)仍是一个群,则(H,)叫做(G,)的子群。如果G的一个子群H不等于G,即H是G的真子集,则(H,)叫做(G,)的真子群 平凡子群和非平凡子群: 任意群都有两个子集一定是群 (平凡子群):{e} {G},其他…...
Java后端常见问题 (一)jar:unknown was not found in alimaven
1.安装配置maven时未将原来的 mirror 标签注释掉 解决方法:找到 mirrors 标签,先将原来配置的http://0.0.0.0给注释了,这个是高版本的maven增加的一个保护机制,如果不注释,那么使用的时候就下载不了jar包,如下图所示。…...
overleaf中文生僻字显示不正确,显示双线F
我是不想换全文字体的,只是一个生僻字显示不出来,就想要像word一样,把这个生僻字用包含这个生僻字的字体来显示就好了。 解决步骤: 1、使用如下宏包: \usepackage{xeCJK} %声明宏包,主要用于支持在XeTeX…...
C语言中的贪心算法
贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前最优解的算法,希望通过局部最优解的选择,最终得到全局最优解。它常用于解决最优化问题,如最小生成树、最短路径等。本文将从理论到实践,逐步引导…...
虚幻引擎结构之UWorld
Uworld -> Ulevel ->Actors -> AActor 在虚幻引擎中,UWorld 类扮演着至关重要的角色,它就像是游戏世界的总指挥。作为游戏世界的核心容器,UWorld 包含了构成游戏体验的众多元素,从游戏实体到关卡设计,再到物…...
太通透了,Android 流程分析 蓝牙enable流程(stack/hidl)
零. 前言 由于Bluedroid的介绍文档有限,以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等),加上需要掌握的语言包括Java/C/C++等,加上网络上其实没有一个完整的介绍Bluedroid系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员…...
2.微服务灰度发布落地实践(agent实现)
前言 据上一篇,设计方案的分析,综合考虑,最终决定,客户端采用agent方案实现,具本原因不再赘述, 感觉兴趣的小伙伴可以回头了解一下.该篇主要讲java agent的实现,灰度agent客户端的基础框架实现 java agent的介绍 ja…...
搭建医疗客服知识库:智慧医疗的基石
在医疗行业,客服知识库不仅是提供患者咨询和支持的平台,更是提升医疗服务效率和质量的关键工具。 1. 明确知识库的目标和价值 构建医疗行业客服知识库的首要任务是明确其目标和价值。这包括提供患者教育、辅助临床决策、优化患者服务流程等。明确目标后…...
CES Asia 2025的低空经济展区有哪些亮点?
CES Asia 2025(赛逸展)的低空经济展区有以下亮点: • 前沿科技产品展示: 多款新型无人机将亮相,如固定翼无人机和系留无人机的最新型号,其在监测、救援和货物运输等方面功能强大。此外,还有可能…...
Java/Spring项目包名为何以“com”开头?
文章目录 包名的基本概念域名反转规则历史背景包名的结构实际应用总结 在Java和Spring项目中,我们常常看到包名以“com”开头,比如com.example.project。这种命名方式看似简单,其实背后蕴含着不少学问。今天,我们就来聊聊这个话题…...
影刀进阶应用 | 知乎发布想法
文章目录 影刀进阶应用 | 知乎发布想法一、流程流程解释: 二、单条想法发布2.1 素材生产2.2 **进入发布流程**2.3 **输入文本**2.4 插入图片2.5 发布查看 三、批量发布 影刀进阶应用 | 知乎发布想法 一、流程 流程解释: 素材生产 :用AI生成待…...
v-if 和 v-for 优先级
一、优先级规则 在 Vue.js 中,v-for的优先级比v-if高。这意味着当它们同时出现在一个元素上时,v-for会首先被解析和执行。 <div v-for"item in items" v-if"shouldShow(item)">{{ item }}</div> 二、可能导致的问题 …...
【数据结构与算法】单向链表
一、什么是链表 链表由一系列节点组成,每个节点都包含一个 data 域(存放数据)和一个 next 域(指向下一节点)。链表中的节点可以按照任意顺序存放在内存中,它们之间并不连续。每个节点都记录了下一个节点的地…...
网络编程UDP—socket实现(C++)
网络编程UDP—socket实现 前言UDP客户端和服务端UDP使用场景UDP socket C代码示例服务端接收数据示例(bindrecvfrom 阻塞式接收信息):bind 绑定-监听 函数为什么一般都是监听所有网络接口呢?为什么需要用inet_addr进行转换&#x…...
系统思考—冰山模型
“卓越不是因机遇而生,而是智慧的选择与用心的承诺。”—— 亚里士多德 卓越,从来不是一次性行为,而是一种习惯。正如我们在日常辅导中常提醒自己:行为的背后,隐藏着选择的逻辑,而选择的根源,源…...
MySQL 中存储金额数据一般使用什么数据类型
在 MySQL 中存储金额数据时,应该谨慎选择数据类型,以确保数据的精度和安全性。以下是几种常用的数据类型及其适用性: DECIMAL 类型: 描述:DECIMAL 类型是专门为存储精确的小数而设计的。它可以指定小数点前后的数字位数…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
6.9-QT模拟计算器
源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...
标注工具核心架构分析——主窗口的图像显示
🏗️ 标注工具核心架构分析 📋 系统概述 主要有两个核心类,采用经典的 Scene-View 架构模式: 🎯 核心类结构 1. AnnotationScene (QGraphicsScene子类) 主要负责标注场景的管理和交互 🔧 关键函数&…...
【NLP】 38. Agent
什么是 Agent? 一个 Agent 就是能够 理解、思考,并且进行世界交互 的模型系统,并不是纯粹的 prompt 返回器。 它可以: 读取外部数据(文件/API)使用记忆进行上下文维持用类Chain-of-Thought (CoT)方式进行…...
