scala的@tailrec注释是否支持Option.fold方法?
@tailrec
def test(a: Int): Int =
if (a > 10)
Option(true).fold(test(a - 1))(_ => test(a - 2))
else
-1
Run Code Online (Sandbox Code Playgroud)
此代码导致错误:
无法优化@tailrec带注释的方法测试:它包含一个不在尾部位置的递归调用
这个问题可以通过模式匹配来解决,但我觉得fold看起来更干净.