-3- scala变量及变量声明、初始化

[参考link]

Scala变量

在Scala中,有三种方法可以定义变量:valvar延迟 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 )
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容