使用“if”作为表达式

时间:2013-06-23 02:10:01

标签: scala

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

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

2 个答案:

答案 0 :(得分:10)

试试这个:

override def toString = "123:" + (if (true) "456" else "789")

答案 1 :(得分:0)

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

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

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