[参考link]
Scala变量
在Scala中,有三种方法可以定义变量:val
,var
和延迟 val
。
Scala允许用户在声明变量时决定变量是否是不可变(只读)的
。
val(不可变变量)
使用关键字val
声明不可变变量。这意味着它是一个不能更改的变量。
比如val x= 10
创建一个名为x并赋值为10的值:
object PrintNumbers {
def main(args: Array[String]) {
val x = 10
println(x*x)
}
}
运行脚本
$ scala val.scala
warning: there was one deprecation warning (since 2.13.0); re-run with -deprecation for details
100
$
var(可变变量)
用户也可以声明一个可变变量:
object PrintNumbers {
def main(args: Array[String]) {
var y = 10 // val是不可变变量,var是可变变量
y = 11
println(y)
}
}
运行脚本
$ scala var.scala
warning: there was one deprecation warning (since 2.13.0); re-run with -deprecation for details
11
$
延迟val
延迟val变量计算一次,第一次访问变量。只有vals可以是惰性变量。
Scala变量声明、初始化
Scala允许用户在声明它时确定变量是不可变的(只读的)还是不可变的(读写的)。
val变量声明、初始化
不可变的“变量"用关键字 val 声明、初始化:
val array: Array[String] = new Array(5)
延迟val变量声明、初始化
数组元素
本身是可变的,因此可以修改元素:
object Main {
def main(args: Array[String]) {
val array: Array[String] = new Array(5)
array = new Array(2)
array(0) = "Hello"
println(array )
}
}
⚠️注意
在声明时必须初始化val。
可变变量声明、初始化
可变变量用关键字 var 声明,并且必须立即初始化。
object Main {
def main(args: Array[String]) {
var stockPrice: Double = 100.0
stockPrice = 200.0
println(stockPrice);
}
}
示例:定义一个Person类
定义了一个具有不可变的名字和姓氏,但是一个可变的年龄的Person类:
class Person(val name: String, var age: Int)
object Main {
def main(args: Array[String]) {
val p = new Person("Dean Wampler", 29)
println(p.name)
println(p.age )
p.age = 30
println(p.age )
}
}
网友评论