在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
^