二元运算符'< '不能应用两个T操作数

时间:2015-12-02 03:17:10

标签: swift

我的代码如下,我希望函数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
}

我该如何改变它?

1 个答案:

答案 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
}