泛型扩展

// 泛型扩展

// 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!)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,766评论 0 33
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,854评论 0 6
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 1,498评论 0 4
  • Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...
    零度_不结冰阅读 421评论 0 0
  • 写在实体店开张致辞 各位领导各位来宾各位朋友,晚上好!我谨代表公司热烈欢迎你们的到来!我叫彭志华,2008...
    Simonpang阅读 466评论 0 0