4

我想知道,为什么我不能编译这个:

class MyClass{
  override def toString = "123:" + if (true) "456" else "789"
  //error:  illegal start of simple expression
}
4

2 回答 2

10

尝试这个:

override def toString = "123:" + (if (true) "456" else "789")
于 2013-06-23T02:13:06.477 回答
0

佩德罗弗拉是对的。使用您的表达式,编译器会尝试将字符串与 if 混合并失败。使用括号可以消除表达式中的歧义。

class MyClass{
   override def toString = "123:" + (if (true) "456" else "789")
}

我发现了这个简单的在线服务,您可以在其中测试您的 scala 表达式:http ://www.simplyscala.com/

于 2013-06-23T02:30:44.723 回答