在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))
答案 0 :(得分:6)
在Scala中,三元运算符为if
。因此,?
和:
可以替换为通常的if
和else
关键字。
此外,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