斯卡拉:' val'没有初始化

时间:2014-11-03 21:55:42

标签: java scala

在Java中,我可以轻松地做到这样的事情:

final String str;
if (p() == true) {
    str = "foo";
} else {
    str = "bar";
}

如何在Scala中存档这样的内容?显而易见的'当然是不可能的:

val str: String
if (p) {
    str = "foo"
} else {
    str = "bar"
}

有什么东西可以用Java做的事情吗?

1 个答案:

答案 0 :(得分:13)

鉴于在scala中if-else块是表达式,你可以像这样使用它们:

val str = 
   if (p) "foo"
   else "bar"

与Java的语法相比,这还具有自动类型推导的优势。