我想在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)
}
答案 0 :(得分:2)
对我来说很好:
scala> None getOrElse { println("AAA")
| 5 }
AAA
res1: Int = 5
BTW,{ () => ... }
是一个函数,从空参数设置为某个东西。
答案 1 :(得分:0)
可能在这里你有问题:
new 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)
}