在Scala中if / else:非法启动简单表达式/ Il

时间:2017-09-24 05:26:02

标签: scala

这些是错误:

scala.scala:13: error: not found: value listaFibonaccisAux
  listaFibonaccisAux int 0
  ^
scala.scala:4: error: illegal start of simple expression
  if (int>fibby) fibby :: (listaFibonaccisAux int (n+1))
  ^
scala.scala:1: error: illegal start of definition
  else List()
  ^
scala.scala:1: error: eof expected but '}' found.
  }
  ^

这是我的代码,错误似乎是指简单的if/else语句,我已经尝试过包装和解开parens中的内容,但它没有帮助:

def listaFibonaccis (int:Int):List[Int]=
  {
  listaFibonaccisAux (int, 0)
  }

def listaFibonaccisAux (int:Int, n:Int):List[Int]=
  {
  var fibby = fib n
  if (int> fibby)
    fibby :: (listaFibonaccisAux (int, (n+1)))
  else 
    List()
  }

def fib( n : Int) : Int = n match 
  {
   case 0 | 1 => n
   case _ => fib( n-1 ) + fib( n-2 )
  }

fib在斐波纳契序列中找到一个数字n

listaFibonaccisAux使用fib创建一个斐波纳契数列表,并在数字大于int时停止

listaFibonaccis只是一个简单的包装器来调用另一个用0来启动它

这是一个简单的if/else声明给我带来麻烦,这很难过。

1 个答案:

答案 0 :(得分:4)

编译器抱怨if / else,因为它认为之前的行没有正确结束。

试试这个:fib(n)

虽然“中缀”(空格符号)有时候很方便......

instance.method(arg)加入instance method arg

...因为您尝试使用它,所以无法应用。