scala自学之路-04-变量

2024-06-22 10:38
文章标签 scala 04 自学 之路 变量

本文主要是介绍scala自学之路-04-变量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义变量

var 变量名=初始化值

var 变量名:数据类型=初始化值

(1)定义变量的时候需要初始化(抽象字段除外)

(2)定义变量的时候可以不指定变量的数据类型,系统会根据变量的初始化值推断变量的数据类型;

var a=1

 

一旦确定类型后,则不可改变,比如已经确认a是Int类型,则不可以为其赋值10.9

定义常量

val 常量名=初始化值

val 常量名:数据类型=初始化值

注意:val修饰的常量,相当于java中final修饰的变量,就是常量。

val修饰的变量,如果类型是值类型(相当于java的基本数据类型:int double等八大类型),值是不可以修改的。

 

但是var修饰的值是可以修改的。

val如果修饰的类型是引用类型,引用不可变,引用的内容可变。

val a1=Array(1,2,3)

val a2=Array(2,3,4)

a1=a2//不可以,引用不可变

a1(0)=10//可以,引用的内容可变

 

val修饰的变量,如果还使用lazy修饰,则可以在使用的时候再赋值。

 

lazy只能修饰val变量,不可以修饰var变量。

变量是选择val还是var?

官方推荐val

(1)值不可变,可读性更强

(2)值不可变,更安全

(3)垃圾回收的时候可以被更快的回收

这篇关于scala自学之路-04-变量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084056

相关文章

C# 中变量未赋值能用吗,各种类型的初始值是什么

对于一个局部变量,如果未赋值,是不能使用的 对于属性,未赋值,也能使用有系统默认值,默认值如下: 对于 int 类型,默认值是 0;对于 int? 类型,默认值是 null;对于 bool 类型,默认值是 false;对于 bool? 类型,默认值是 null;对于 string 类型,默认值是 null;对于 string? 类型,哈哈,没有这种写法,会出错;对于 DateTime 类型,默

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

js小题:通过字符串执行同名变量怎么做

在JavaScript中,你不能直接使用一个字符串来直接引用一个变量,因为JavaScript是一种静态类型语言(尽管它的类型在运行时可以变化),变量的名字在编译时就被确定了。但是,有几种方法可以实现类似的功能: 使用对象(或Map)来存储变量: 你可以使用一个对象来存储你的变量,然后使用字符串作为键来访问这些变量。 let myVars = { 'var1': 'Hello', 'var

MySQL中的系统变量权限

MySQL的系统变量用于控制服务器的操作。它们可以是全局的(影响整个MySQL服务器实例),也可以是会话的(仅影响当前客户端会话),或者两者兼有。 你可以使用SET语句来动态地改变这些变量的值。例如: 设置全局系统变量的运行时值: 使用set global语句,该语句需要system_VARIABLES_ADMIN权限(或不推荐使用的SUPER权限)。例如: SET GLOBAL max_

【设计模式-04】原型模式

【设计模式-04】原型模式 1. 概述2. 结构3. 实现4. 案例5. 使用场景6. 优缺点6.1 原型模式的优点6.2 原型模式的缺点 7. 实现深克隆(深拷贝) 1. 概述 原型模式: 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 2. 结构 原型模式包含如下角色: 抽象原型类:规定了具体原型对象必须实现的 clone() 方法。

python - 变量和字符串

一.变量 变量名就像我们现实社会的名字,把一个值赋值给一个名字时,Ta会存储在内存中,称之为变量(variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”。 •不过Python与大多数其他计算机语言的做法稍有不同,Ta并不是把值存储在变量中,而更像是把名字贴在值的上边。 •所以有些Python程序员会说“Python”没有“变量”,只有“名字”。 >>> t

线程间通信方式(互斥(互斥锁)与同步(无名信号量、条件变量))

1通信机制:互斥与同步 线程的互斥通过线程的互斥锁完成; 线程的同步通过无名信号量或者条件变量完成。 2  互斥 2.1 何为互斥?         互斥是在多个线程在访问同一个全局变量的时候,先让这个线程争抢锁的资源,那个线程争抢到资源,它可以访问这个变量,没有争抢到资源的线程不能够访问这个变量。那这种只有一个线程能够访问到这个变量的现象称之为线程间互斥。 2.2互斥锁API 1.

C++ 教程 - 04 类的使用

文章目录 类的定义类定义案例构造函数 类的定义 C++ 在 C 语言的基础上增加面向对象编程,类是用于指定对象的形式,是一种用户自定义的数据类型,封装了数据和函数。类可以被看作是一种模板,可以用来创建具有相同属性和行为的多个对象。 class 关键字定义类,相当于在结构体中加入方法; 花括号内定义成员变量、成员方法,并且分块表示,每块使用public/private/prote

1.1 从图灵机到GPT,人工智能经历了什么?——《带你自学大语言模型》系列

《带你自学大语言模型》系列部分目录及计划,完整版目录见: 带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型(科普向) 第一章 走进大语言模型 1.1 从图灵机到GPT,人工智能经历了什么?1.2 如何让机器理解人类语言?(next, next)1.3 Transformer做对了什么?(next, next, next) 第二部分 构建大语言模型(技术向) 第二章 基础知识

php 成员变量赋值用连接符报错

今天遇到一个问题,对类中的一个成员变量赋值,一直报错。就是一个常量连接一个字符串 class FileUploadController extends Controller{private $path = BASEDIR."/Public/Upload"; //上传文件保存你路径private $allowType = array('jpg','png','gif');