[英]Declare variable in Scala
我只是Scala的新手,我知道Scala有三个关键字来声明变量:
def defines a method
val defines a fixed value (which cannot be modified)
var defines a variable (which can be modified)
我将编写一些代码以使用匿名方法进行测试。
object Anonymous {
def main(args: Array[String]): Unit = {
def double_1 = (i: Int) => { i * 2 }
val double_2 = (i: Int) => { i * 2 }
var double_3 = (i: Int) => { i * 2 }
println(double_1(2))
println(double_2(2))
println(double_3(2))
}
}
谢谢!
首先,它们不是匿名方法。 它们是函数,每个函数都有一个名称,因此它们不是匿名的。
它们之间的主要区别是可以将double_3
重新分配给一些不同的函数值。
var double_3 = (i: Int) => { i * 2 }
double_3 = (i: Int) => i + 3 // the compiler allows this
其他人不能。
将函数定义为def
是非常不寻常的。 def
主要用于声明方法,因为每次引用def
都会重新评估def
。
def x = 3 + 4
val y = 3 + 4
x
和y
求和结果均为7,但每次引用x
都重做加法。 对于y
,在定义处加法一次,再也不会。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.