我想将一段代码放入 getOrElse 方法,但我不能:
//1
getOrElse(() => {
println("id is not found: " + x.Id)
new MyClass(-1)
})
//2
getOrElse {
println("id is not found: " + x.Id)
new MyClass(-1)
}
我想将一段代码放入 getOrElse 方法,但我不能:
//1
getOrElse(() => {
println("id is not found: " + x.Id)
new MyClass(-1)
})
//2
getOrElse {
println("id is not found: " + x.Id)
new MyClass(-1)
}
对我来说很好:
scala> None getOrElse { println("AAA")
| 5 }
AAA
res1: Int = 5
顺便说一句,{ () => ... }
是一个从空参数集到某物的函数。
可能在这里你有问题:
新的 MyClass(-1)
我没有看到太多代码,但是这个问题。请参阅此代码,它工作正常:
import scala.io.Source
class Test(x: Int) {
override def toString = "In test "+x
}
object Main extends App {
val test = None
val b = test.getOrElse({
println("not found")
new Test(-1)
})
println(b.toString)
}