Scala <console>:1:错误:';'预期,但'('找到</console>

时间:2013-01-17 06:57:26

标签: scala

在Scala中编写一个简单的递归函数时,我一直收到此错误。我错过了什么?

scala> def count(n1:Int, n1:Int) : List[Int] = (n1 < n2) ? List() : List(n1, count((n1 - 1), n2))
<console>:1: error: ';' expected but '(' found.
   def count(n1:Int, n1:Int) : List[Int] = (n1 < n2) ? List() : List(n1, count((n1 - 1), n2))

2 个答案:

答案 0 :(得分:6)

在Scala中,三元运算符为if。因此,?:可以替换为通常的ifelse关键字。

此外,n2定义在哪里?我会在count这样def count(n1:Int, n2:Int) : List[Int] = ...

中猜测

答案 1 :(得分:1)

这有效!

def count(n1:Int, n2:Int) : List[Int] = if (n1 < n2) List() else n1 :: count((n1 - 1), n2))

count(n1:Int, n1:Int)更改为count(n1:Int,n2)其余的是添加if else子句而不是三元操作符。

执行此操作的类似代码为def count(n1:Int, n2:Int) = (n1 to n2).reverse