Scala之变量

变量是保存存储值的内存位置的名称。这意味着当创建变量时,可以在内存中保留一些空间。

根据变量的数据类型,编译器分配内存并决定可以存储在预留内存中的内容。因此,通过为变量分配不同的数据类型,可以在这些变量中存储整数,小数或字符。

1、变量声明

使用关键字var声明,是一个可以改变值的变量,这称为可变变量。

var myVar : String = "Foo"

使用关键字val声明,是一个不能被改变的变量,这被称为不可变变量。

val myVal : String = "Foo"

2、数据类型

变量的类型在变量名称和等号之前指定。可以通过其数据类型来定义任何类型的Scala变量,如下所示:

val or val VariableName : DataType = [Initial Value]

变量声明一定需要初始值,否则会报错。

当为变量分配初始值时,Scala编译器可以根据分配给它的值来推断变量的类型。这被称为变量类型推断。

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

默认情况下,myVar将会被计算推断为Int类型,myVal将计算推断为String类型变量。

3、多个赋值

Scala 支持多个变量的声明:

val xmax, ymax = 100  // xmax, ymax都声明为100

如果代码块或方法返回一个元组(Tuple - 保持不同类型的对象的集合),则可以将元组分配给一个val变量。

val pa = (40, "Foo")

4、变量的作用域

Scala中的变量可以有三个不同的范围,具体取决于它们被使用的位置。它们可以作为字段存在,作为方法参数和局部变量存在。以下是每种类型范围的详细信息。

字段

字段是属于对象的变量。这些字段可以从对象中的每个方法的内部访问。根据字段声明的访问修饰符,也可以在对象外部访问字段。 对象字段可以是可变的和不可变的类型,可以使用varval来定义。

方法参数

方法参数是在调用该方法时用于传递方法中的值的变量。方法参数只能从方法内部访问,但是如果从方法外部引用了对象,则可以从外部访问传入的对象。方法参数始终是不可变的,由val关键字定义。

局部变量

局部变量是在方法中声明的变量。局部变量只能从方法内部访问,但如果从方法返回,则您创建的对象可能会转义该方法。局部变量可以是可变的和不可变的类型,可以使用varval定义。

posted @ 2019-01-28 18:28  才华充电中  阅读(574)  评论(0编辑  收藏  举报