Scala变量

Posted duanxz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala变量相关的知识,希望对你有一定的参考价值。

变量是只不过是保留内存位置来存储值。这意味着,当创建一个变量,会在内存中保留一些空间。

基于变量的数据类型,所述编译器分配存储器,并决定什么可以被存储在保留存储器。因此,通过分配不同的数据类型的变量,可以存储整数,小数,或字符在这些变量。

变量声明

Scala有两种变量,val和var。val类似于Java里的final变量。一旦初始化了,val就不能再被赋值。相反,var如同Java里面的非final变量,可以在它的生命周期中被多次赋值。

即,常量或变量。

下面是使用var关键字来定义一个变量的语法:

scala> var myVar : String = "Foo"
myVar: String = Foo

scala>

 

在这里,myVar使用关键字var声明。这意味着它是一个可以改变值的变量,被称为可变变量。下面是使用val关键字来定义变量的语法:

scala> val msg = "hello world"
msg: String = hello world

scala>

 

这里,myVal是使用关键字val声明。这意味着,它是不能改变的变量,这是所谓的不可变变量

scala> var myVar : String = "Foo"
myVar: String = Foo

scala>

scala> myVar = "duan"
myVar: String = duan

scala> val msg = "hello world"
msg: String = hello world

scala> msg = "duan"
<console>:12: error: reassignment to val
       msg = "duan"
           ^

scala>

 

变量数据类型:

变量类型在变量名后面指定,前在equals之前签署。可以通过它的数据类型定义任何类型的Scala变量如下:

val or val VariableName : DataType [=  Initial Value]

如果不指定任何初始值变量,那么如下所示它是有效的:

var myVar :Int;
val myVal :String;

变量类型推断:

当分配一个初始值给一个变量,Scala编译器可以计算出根据分配给它的值的变量类型。这就是所谓的变量类型推断。因此,可以写这些变量的声明如下这样:

var myVar = 10;
val myVal = "Hello, Scala!";

在这里,默认情况下,myVar是int类型,将设为myVal为字符串类型变量。

多重任务:

Scala支持多任务。如果一个代码块或方法返回一个元组,该元组可被分配给一个val变量。 [注:元组在以后的章节中学习。]

 
 
val (myVar1: Int, myVar2: String) = Pair(40, "Foo")

类型推断得到正确类型:

val (myVar1, myVar2) = Pair(40, "Foo")

变量类型:

Scala变量可以有三种不同的范围,这取决于它们正在使用的地方。它们可以存在于字段,方法参数和局部变量。下面是关于每种类型的适用范围的详细信息:

字段:

字段是属于一个对象的变量。该字段是从对象中的所有方法中访问。字段也可以是具体取决于访问修饰符字段与声明的对象外访问。对象字段既可以是可变的或不可变的类型,可以使用var 或 val两种定义。

方法参数:

方法的参数是变量,其用于传递方法内的值在方法被调用时。方法参数被从方法唯一传入,但传递的对象可从外面,如果从外面的方法有一个引用对象。方法参数始终是可变的并由val关键字定义。

局部变量:

局部变量是在方法内声明的变量。局部变量只能在方法中访问,但可以访问创建方法的对象(如果从方法中返回它们)。局部变量既可以是可变的或不可变的类型,可以使用var或val两个关键字定义。

以上是关于Scala变量的主要内容,如果未能解决你的问题,请参考以下文章

重学scala:scala中的变量方法函数

为什么Scala是可扩展的?

Scala 变量

初学scala4——trait混入

Scala学习-变量常量运算符流程控制和函数

Scala附加列表