我知道这已经在其他帖子中讨论过,并且我了解使用def
和之间的基本区别val
。def
用于定义方法和val
不可变引用。通过提出这个问题,我试图完成的是了解是否还有更多内容def
。可以和a互换使用val
吗?
def
最近我尝试了以下代码,如果我目前的理解足够,我无法说服自己:
scala> def i: Int = 3
i: Int
scala> i
res2: Int = 3
所以我很好奇,这是否等同于val i = 3
?
然后我尝试了这个:
scala> i()
<console>:9: error: Int does not take parameters
i()
我这样做只是为了测试我对def
. 现在我想知道,什么时候i
是一个方法,为什么 Scala 抱怨“......不带参数”?
接下来我尝试了以下方法:
scala> def i(): Int = 3
i: ()Int
scala> i()
res4: Int = 3
这次 Scala 似乎同意这i
是一种方法。那么我可以使用def
互换val
来声明和初始化变量吗?