// 泛型擴(kuò)展
// public struct Array: RandomAccessCollection, MutableCollection
// Array 的定義已經(jīng)聲明了 Element 為泛型類型
// 我們可以對(duì) Array 進(jìn)行再次擴(kuò)展
extension Array {? ??
var radom: Element? {? ? ? ??
return self.count != 0 ? self[Int(arc4random_uniform(UInt32(self.count)))] : nil? ??
}? ? ? ??
// 擴(kuò)展的泛型方法中椿肩,可以添加除了 T 意外的其他的泛型符號(hào)? ??
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!)