1. 程式人生 > >swift 獲取一個數組中的最大值

swift 獲取一個數組中的最大值

func maxOne<T:Comparable>( _ seq:[T]) -> T{

assert(seq.count>0)

return seq.reduce(seq[0]){

max($0, $1)

    }

}

maxOne([1,2,199,21,17,92,17])  //輸出結果為:199

class Student: CustomStringConvertible,Comparable{

var name:String

var score:Int

init(name:String,score:Int) {

self.name = name

self.score

= score

    }

var description: String{

returnname+",score:\(score)"

    }

}

func ==(s1:Student,s2:Student) -> Bool {return s1.score == s2.score}

func <(s1:Student,s2:Student) -> Bool {return s1.score < s2.score}

let a = Student(name:"studentA",score:100)

let b = Student(name:"studentB",score:

98)

let c = Student(name:"studentC",score:70)

let d = Student(name:"studentD",score:20)

let students = [a,b,c,d]

maxOne(students)  //studentA,score:100