0
我有以下Scala代碼:斯卡拉如果與枚舉其他賦值運算符是失敗
// RunMode.scala
object RunMode extends Enumeration {
val CLIENT_MODE = Value("CLIENT")
val SERVER_MODE = Value("SERVER")
}
// Driver.scala
object MyApp extends App {
// Don't worry about this too much, the point is we get a valid
// instance of RunMode to work with
val runMode : RunMode = getRunMode(args)
val qualifier : String = if runMode.eq(RunMode.CLIENT_MODE) "whistle" else "feather"
// rest of main omitted for brevity
}
在運行此我得到以下編譯器錯誤的三元運算符:
/Users/myuser/myapp/src/main/com/me/myapp/Driver.scala:22: '(' expected but identifier found.
val qualifier : String = if runMode.eq(RunMode.CLIENT_MODE) "whistle" else "feather"
顯然所需行爲可以被重寫爲:
var qualifier : String = null
if(runMode.eq(RunMode.CLIENT_MODE)) {
qualifier = "whistle"
} else {
qualifier = "feather"
}
但是,爲什麼我得到這個錯誤?什麼是修復?
謝謝@ZhekaKozlov(+1) - 請參閱我的更新。你的建議產生了一個新的編譯器錯誤。有任何想法嗎?再次感謝! – smeeb
@smeeb對不起,你還需要放圓括號。查看我的更新。 – ZhekaKozlov