Scala变量

时间:2020-01-09 10:47:19  来源:igfitidea点击:

Scala变量有两种形状。值和变量。值变量实际上只是一个常量,意味着一旦分配,就无法更改其值。换句话说,它是不可变的。另一方面,常规变量是可变的,这意味着我们可以更改其值。

声明var和val变量

这是我们声明这两种类型的变量的方式:

var myVar : Int = 0;

val myVal : Int = 1;

第一个变量myVar使用关键字var声明。这意味着它是一个可以更改值的变量。

第二个变量myVal是使用关键字val声明的。这意味着它是一个值,一个常量,一旦分配就无法更改值。

变量类型和类型推断

本文前面的示例在变量名称后指定了变量的类型,并用冒号分隔。在下面的示例中,我重复了之前的声明,并用粗体标记了类型声明:

var myVar : Int = 0;

val myVal : Int = 1;

变量的类型在变量名之后和任何初始值之前指定。

当为变量分配初始值时,Scala编译器可以根据分配给变量的值来确定变量的类型。这称为类型推断。因此,我们可以像下面这样编写这些变量声明:

var myVar = 0;
val myVal = 1;

但是,如果我们没有为变量分配初始值,则编译器将无法确定它是什么类型。因此,如果不为变量分配初始值,则必须明确指定类型。外观如下:

var myVar :Int;
val myVal :Int;

字段,参数和局部变量

Scala中的变量可以以3种不同的角色存在。作为字段,方法参数和局部变量。 Scala中没有静态变量。

字段是属于对象的变量。可以从对象中每个方法的内部访问字段。字段也可以在对象外部访问,具体取决于声明该字段使用哪些访问修饰符。字段可以是val和var。

方法参数是变量,在调用方法时将值传递给方法。方法参数只能从方法内部访问,但是,如果我们从方法外部引用了对象,则可以从外部访问传入的对象。方法参数始终是val的。

局部变量是在方法内部声明的变量。局部变量只能从方法内部访问,但是如果我们从方法中返回它们,则创建的对象可能会跳过该方法。局部变量可以是var和val。