在Scala中定义函数时发生ClassTag错误

时间:2019-02-16 22:07:59

标签: scala classtag

在scala上定义函数时遇到问题。该函数接受一个数组和一个谓词函数,如果该谓词函数适用于所有数组,则返回一个布尔值。

def isThreeSorted[A] (as: Array[A], p: Array[A] => Boolean): Boolean = {
    @annotation.tailrec
    def loop(n: Int): Boolean = {
        if (n>= as.length) true
        else {
            if (!(p(Array(as(n-2),as(n-1),as(n))))) false
            else loop(n+1)
        }
    }
    if (as.length < 3) false
    else loop(2)
}

我的代码中显示以下错误消息:

<console>:32: error: No ClassTag available for A
                   if (!(p(Array(as(n-2),as(n-1),as(n))))) false
                                ^

0 个答案:

没有答案