gpt4 book ai didi

scala - scala-未初始化的变量声明

转载 作者:行者123 更新时间:2023-12-04 13:23:29 24 4
gpt4 key购买 nike

我的一个scala类中有一个变量,其值仅在调用特定方法时才第一次设置。方法参数值将是该字段的初始值。所以我有这个:

classX {
private var value: Int= _
private var initialised = false

def f(param: Int) {
if (!initialised){
value = param
initialised = true
}
}
}

有没有更像scala的方式来做到这一点?选项似乎有点麻烦...

最佳答案

实际上,使用Option麻烦些,因为可以从value中的SomeNone的值推断出是否已初始化Option的问题。这比使用标志更惯用的Scala。

class X() {
var value: Option[Int] = None

def f(param: Int) {
value match{
case None => value = Some(param)
case Some(s) => println("Value already initialized with: " + s)
}
}
}

scala> val x = new X
x: X = X@6185167b

scala> x.f(0)

scala> x.value
res1: Option[Int] = Some(0)

scala> x.f(0)
Value already initialized with: 0

关于scala - scala-未初始化的变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16488546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com