我的代码如下,我希望函数maxNumer
不仅仅适用于一种类型:
var numbers3 = [3,9,23,67,34,2,7,0,1]
func maxNumer<T>(array:[T]) -> T {
var maxNumer = array[0]
for var i = 0; i < array.count-1; i++ {
if maxNumer < array[i+1] { //This line gets error as title
maxNumer = array[i+1]
}
}
return maxNumer
}
我该如何改变它?
答案 0 :(得分:5)
您需要告诉Swift T
符合Comparable
协议,以便允许在<
类型的对象上使用运算符T
:
func maxNumer<T : Comparable>(array:[T]) -> T {
// ^^^^^^^^^^
var maxNumer = array[0]
for var i = 0; i < array.count-1; i++ {
if maxNumer < array[i+1] { //This line gets error as title
maxNumer = array[i+1]
}
}
return maxNumer
}