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变量的主要内容,如果未能解决你的问题,请参考以下文章