递归调用不在尾部位置

时间:2015-05-28 14:00:48

标签: scala

假设我定义了以下功能:

.request-form-container{
    width: 400px;
    margin:  auto;
    text-align: left;
}

当我添加一个tailrec注释时,编译器会给我以下错误:

  

无法优化@tailrec注释方法myFunc:它包含一个   递归调用不在尾部位置:^ Nil。

我对Nil的声明如何成为递归调用感到困惑?

1 个答案:

答案 0 :(得分:7)

问题不在于Nil,而在于h :: myFunc(t),因为myFunc(t)不是最后一次通话。最后一次调用是::结果的运算符myFunc(t)。这就是函数不是尾递归的原因。