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

scala基础学习_变量

文章目录

  • scala中的变量
    • 常量 val(不可变变量)
    • 变量 var
    • 变量声明
      • 多变量声明
      • 匿名变量 _ 声明
    • 变量类型声明
    • 变量命名规范

scala中的变量

常量 val(不可变变量)

使用val关键字声明变量是不可变的,一旦赋值后不能被修改

对于 val 类型的变量,一旦它被初始化,它所指向的内存地址就不会改变(尽管该地址中的值可能会改变,如果它引用的是一个可变对象)。

val name = "Alice"
val name = "Bob"  // 这行代码会导致编译错误,因为 name 是不可变的

变量 var

使用 var 关键字声明的变量是可变的,可以在其生命周期内被重新赋值。然它的值可以被重新赋值,但它的类型仍然是固定的

对于 var 类型的变量,其引用的内存地址可以改变,这意味着你可以将 var 变量重新赋值为不同的值,这些值可能会存储在不同的内存地址中。

var age = 25
age = 26  // 这行代码是合法的,因为 age 是可变的

变量声明

在 Scala 中,使用 var 关键字声明的变量确实是可变的,这意味着你可以在变量的生命周期内多次改变它的值。然而,这并不意味着你可以多次声明同一个变量。一旦一个变量被声明,就不能在同一作用域内再次声明它,无论它是 var 还是 val

多变量声明

你可以在一行代码中声明多个变量,使用逗号分隔:

val a, b, c = 1  // a, b, c 都被赋值为 1

使用元组进行声明(解包)

var (x, y, z) = (10, 20, "world")

匹配声明

val tuple = (1, 2.0, "three")
tuple match {case (x: Int, y: Double, z: String) => println(s"x=$x, y=$y, z=$z")
}

匿名变量 _ 声明

在匿名函数和模式匹配中,你可以使用 _ 作为匿名变量或占位符。

val numbers = List(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter(_ % 2 == 0)  // _ 代表当前元素

变量类型声明

在 Scala 中声明变量和常量不一定要指明数据类型,在没有指明数据类型的情况下,其数据类型是通过变量或常量的初始值推断出来的。

所以,如果在没有指明数据类型的情况下声明变量或常量必须要给出其初始值,否则将会报错。

  • 显式类型声明:明确指定变量的类型。
  • 类型推断:省略类型声明,由编译器推断类型。

在 Scala 中,如果你不显式地指定变量的类型,编译器会尝试根据变量的初始值推断其类型。这种类型推断机制确实可以让你编写更简洁的代码。然而,一旦变量的类型被推断出来,它就不能再改变以接受不同类型的值

显式类型声明

object ListData {def main(args:Array[String]):Unit={val lst: List[Any] = List(1,2,3,5)val str1: String = "helllo"}
}

类型推断

object ListData {def main(args:Array[String]):Unit={val lst = List(1,2,3,5)val str1= "helllo"}
}

变量命名规范

  • 变量名必须以字母(A-Z 或 a-z)或下划线(_)开头。
  • 尽量不要使用以下划线开头的变量名,这通常用于标识内部或私有变量。
  • 变量名不能是Scala的关键字。
  • 驼峰命名:myVariableName, userAge, accountBalance

相关文章:

scala基础学习_变量

文章目录 scala中的变量常量 val(不可变变量)变量 var变量声明多变量声明匿名变量 _ 声明 变量类型声明变量命名规范 scala中的变量 常量 val(不可变变量) 使用val关键字声明变量是不可变的,一旦赋值后不能被修改 对…...

Java 身份证校验工具类(15位校验、18位校验与15转18)

文章目录 身份证简介(一)身份证号码的组成(二)一代和二代身份证一代身份证二代身份证 检验思路分析(一)15位身份证号码(二)18位身份证号码(三)校验算法示例&a…...

HTML+CSS+Vue3的静态网页,免费开源,可当作作业使用

拿走请吱一声&#xff0c;点个关注吧&#xff0c;代码如下&#xff0c;网页有移动端适配 HTML <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width…...

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(8)

1.问题描述&#xff1a; 在AGC中&#xff0c;推送服务的消息回执新建成功后&#xff0c;有一个有效期 1&#xff0c;这个有效期是什么意思&#xff0c;过期后&#xff0c;会影响什么呢&#xff1f; 2&#xff0c;这个有效期是否可以修改成一直不过期&#xff1f; 解决方案&…...

HCIA-Access V2.5_2_2_2网络通信基础_IP编址与路由

网络层数据封装 首先IP地址封装在网络层&#xff0c;它用于标识一台网络设备&#xff0c;其中IP地址分为两个部分&#xff0c;网络地址和主机地址&#xff0c;通过我们采用点分十进制的形式进行表示。 IP地址分类 对IP地址而言&#xff0c;它细分为五类&#xff0c;A,B,C,D,E,…...

音频客观测评方法PESQ

一、简介 语音质量感知评估&#xff08;Perceptual Evaluation of Speech Quality&#xff09;是一系列的标准&#xff0c;包括一种用于自动评估电话系统用户所体验到的语音质量的测试方法。该标准于2001年被确定为ITU-T P.862建议书[1]。PESQ被电话制造商、网络设备供应商和电…...

前后端分离的项目使用nginx 解决 Invalid CORS request

我是这样打算的&#xff0c;前端用nginx代理&#xff0c;使用80 转443 端口走https 前端的地址就是http://yumbo.top 或https://yumbo.top 后端服务地址是&#xff1a;http://yumbo.top:8081 下面是我的完整配置&#xff0c;功能是正常的&#xff0c;加了注释 user nginx; …...

回归预测 | MATLAB实现SVM-Adaboost集成学习结合支持向量机多输入单输出回归预测

回归预测 | MATLAB实现SVM-Adaboost集成学习结合支持向量机多输入单输出回归预测 目录 回归预测 | MATLAB实现SVM-Adaboost集成学习结合支持向量机多输入单输出回归预测基本介绍程序设计基本介绍 SVM-Adaboost集成学习是一种将支持向量机(SVM)与AdaBoost算法相结合的集成学习…...

常见排序算法总结 (五) - 堆排序与堆操作

堆排序&#xff08;借助 API&#xff09; 算法思想 利用堆能够维护数组中最大值的性质&#xff0c;根据数组元素建立最大堆&#xff0c;依次弹出元素并维护堆结构&#xff0c;直到堆为空。 稳定性分析 堆排序是不稳定的&#xff0c;因为堆本质上是完全二叉树&#xff0c;排…...

kubernetes的三种探针ReadinessProbe、LivenessProbe和StartupProbe,以及使用示例

前言 k8s中的Pod由容器组成&#xff0c;容器运行的时候可能因为意外情况挂掉。为了保证服务的稳定性&#xff0c;在容器出现问题后能进行重启&#xff0c;k8s提供了3种探针 k8s的三种探针 为了探测容器状态&#xff0c;k8s提供了两个探针: LivenessProbe和ReadinessProbe L…...

掌握线性回归:从简单模型到多项式模型的综合指南

目录 一、说明 二、简单线性回归 三、线性回归的评估指标 3.1 线性回归中的假设 四、从头开始的简单线性回归代码 五、多元线性回归 六、多元线性回归代码 七、多项式线性回归 八、多项式线性回归代码 九、应用单变量多项式回归 十、改变多项式的次数 十一、多列多项式回归 一、…...

Java:183 基于SSM的高校食堂系统

项目介绍 基于SSM的食堂点餐系统 角色:管理员、用户、食堂 前台用户可以实现商品浏览&#xff0c;加入购物车&#xff0c;加入收藏&#xff0c;预定&#xff0c;选座&#xff0c;个人信息管理&#xff0c;收货信息管理&#xff0c;收藏管理&#xff0c;评论功能&#xff0c;…...

光谱相机

光谱相机是一种能够同时获取目标物体的空间图像信息和光谱信息的成像设备。 1、工作原理 光谱相机通过光学系统将目标物体的光聚焦到探测器上&#xff0c;在探测器前设置分光元件&#xff0c;如光栅、棱镜或滤光片等&#xff0c;将光按不同波长分解成多个光谱通道&#xff0c…...

AI绘图:开源Stable Diffusion 3 ComfyUI下载安装方法

AI绘图&#xff1a;开源Stable Diffusion 3 ComfyUI下载安装方法 安装好后软件运行效果&#xff1a; 第一步&#xff1a;安装ComfyUI的最新版本 1、请从下面的地址下载压缩包&#xff0c;并解压缩到硬盘 https://github.com/comfyanonymous/ComfyUI/releases/download/late…...

一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测

一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测 目录 一区向量加权算法优化INFO-CNN-SVM卷积神经网络结合支持向量机多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现INFO-CNN-SVM向量加权算法优化卷积神经网络结…...

AES笔记整理

文章目录 1. 简介2. 密钥加法层2. 字节代换层3. 行位移 - ShiftRows4. 列混淆 - MixColumn5. 其他5.1列混淆矩阵乘法运算5.2 AES密钥生成 6. 参考资料 以下内容为信息安全开发过程中&#xff0c;AES对称加密算法的笔记&#xff0c;大部分内容转载其他文章&#xff0c;若描述不清…...

Jmeter 性能压测-Tomcat连接数

1、影响性能的线程状态 ①BLOCKED&#xff0c;如果线程中有BLOCKED&#xff0c;就代表有阻塞情况&#xff0c;需要进行排查 ②TIMED_WAITING&#xff0c;如果线程中有TIMED_WAITING&#xff0c;就代表有等待的情况&#xff0c;要分情况来排查 系统线程在等待&#xff08;如果…...

基于Vue3的组件封装技巧分享

1、需求说明 需求背景&#xff1a;日常开发中&#xff0c;我们经常会使用一些UI组件库诸如and design vue、element plus等辅助开发&#xff0c;提升效率。有时我们需要进行个性化封装&#xff0c;以满足在项目中大量使用的需求。 错误示范&#xff1a;基于a-modal封装一个自定…...

python中r代表什么意思

r在python中表示什么意思&#xff1f; “r”是“raw”的简写。去查单词&#xff0c;意思是“未加工的&#xff0c;原料”。因此&#xff0c;不难想象&#xff0c;在python字符串前面&#xff0c;表示“按原样输出字符串”&#xff0c;也就是说字符串里的元素&#xff0c;原来什…...

《量子计算对人工智能发展的深远影响》

在科技发展的浪潮中&#xff0c;量子计算与人工智能无疑是两颗璀璨的明星&#xff0c;二者的融合正引领着一场深刻的科技变革. 量子计算的独特之处在于其利用量子比特的叠加和纠缠特性&#xff0c;能够实现并行计算&#xff0c;从而在处理复杂问题时展现出超越传统计算的巨大潜…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中&#xff0c;API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关&#xff0c;Kong凭借其插件化架构…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...