泛型扩展

// 泛型扩展

// public struct Array: RandomAccessCollection, MutableCollection

// Array 的定义已经声明了 Element 为泛型类型

// 我们可以对 Array 进行再次扩展

extension Array {    

var radom: Element? {        

return self.count != 0 ? self[Int(arc4random_uniform(UInt32(self.count)))] : nil    

}        

// 扩展的泛型方法中,可以添加除了 T 意外的其他的泛型符号    

func appendRandomDescripition(_ input: U) -> String{

if let element = self.radom {

return "\(element)" + " " + input.description

} else {

return "empty array"

}

}

}

let languages = ["Swift", "Objc", "Java"]

let radom = languages.radom

languages.appendRandomDescripition(radom!)

你可能感兴趣的:(泛型扩展)