我是scala的新手,我正在练习工作表.我注意到@tailrec在工作表中不起作用,即使我添加了导入
import scala.annotation.tailrec
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的scala版本
Scala code runner version 2.10.2 -- Copyright 2002-2013, LAMP/EPFL
Run Code Online (Sandbox Code Playgroud)
有没有办法让它发挥作用?谢谢
小智 9
您描述的问题是Eclipse IDE for Scala中的一个错误:https: //scala-ide-portfolio.assembla.com/spaces/scala-ide/tickets/1001636#/activity/ticket
解决方法是将@tailrec放在def或不同的对象中.
例如:
package tailrecfunc
import scala.annotation.tailrec
object Session17 {
val block = {
@tailrec
def tailrecfunc(n: Int): Int =
if(n == 0) n; else tailrecfunc(n - 1)
tailrecfunc(4)
}
}
Run Code Online (Sandbox Code Playgroud)
这样,当函数不是尾递归时,scala解释器会发出警告
| 归档时间: |
|
| 查看次数: |
2761 次 |
| 最近记录: |