美文网首页
Swift-泛型

Swift-泛型

作者: luffy的笑容 | 来源:发表于2016-08-03 22:51 被阅读35次

前言:
Swift大多数概念和OC一样,也有些概念在OC中找不到对应的,比如说泛型。Swift中将那种操作写一次就可以作用多个类型的语法叫做Generics(泛型)什么是泛型,泛型有什么作用以及它的优缺点。
泛型是用来使代码能安全工作。在Swift中,泛型可以在函数数据类型和普通数据类型中使用,例如类、结构体或枚举。泛型解决了代码复用的问题。有一种常见的情况,你有一个方法,需要一个类型的参数,你为了适应另一种类型的参数还得重新再写一遍这个方法。
比如,在下面的代码中,如果要求使用一个方法来实现,在OC和Swift中就有明显的不同:
func demo1(x: Int, _ y: Int) -> Bool {
return x == y
}
func demo2(x: String, _ y: String) -> Bool {
return x == y
}
demo1("ray", "ray") // true
demo2(1, 1) // true
OC版的代码如下:
func demo1(x: NSObject, _ y: NSObject) -> Bool {
return x == y
}
demo("ray", "ray") // true
demo(1, 1) // true
这段代码能达到了目的,但是编译的时候并不安全。它允许一个字符串和一个整型数据进行比较,虽然这样不会造成程序崩溃,但是允许一个字符串和一个整型数据进行比较可能不会得到想要的结果。所以这里需要采用泛型,就可以将上面两个方法合并为一个,并同时还保证了数据类型安全。
实现代码如下:
func demo<T: Equatable>(x: T, _ y: T) -> Bool {
return x == y
}
demo("ray", "ray")
demo(1, 1)

相关文章

  • swift 泛型

    Swift-泛型学习和实例总结 - Mazy's Blog - CSDN博客 Swift中的泛型 - 简书

  • Swift-泛型

    前言:Swift大多数概念和OC一样,也有些概念在OC中找不到对应的,比如说泛型。Swift中将那种操作写一次就可...

  • Swift- 泛型

    系统泛型 例如:NSDictionary,NSArray 泛型函数 类型参数 始终使用大写字母开头的驼峰命名法(例...

  • Swift-泛型

    泛型代码让你能根据你所定义的要求写出可以用于任何类型的灵活的、可复用的函数。你可以编写出可复用、意图表达清晰、抽象...

  • Swift-泛型

    泛型 将类型参数化,类似于C++中的模板 可以在协议中定一个泛型(关联类型) 用于类型约束 不透明类型(Opaqu...

  • Swift-泛型笔记

    Swift 泛型 Swift 提供了泛型让你写出灵活且可重用的函数和类型。 Swift 标准库是通过泛型代码构建出...

  • Swift-进阶:泛型

    本文主要介绍泛型及其底层原理 泛型 泛型主要用于解决代码的抽象能力 + 代码的复用性 例如下面的例子,其中的T就是...

  • Swift-进阶 14:泛型

    Swift 进阶之路 文章汇总[https://www.jianshu.com/p/5fbedf309237] 本...

  • Swift-泛型、关联类型

    一、泛型 我们可以在函数、类、结构体、枚举中使用泛型,在名称后使用来表示,例子如下: Sw...

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

网友评论

      本文标题:Swift-泛型

      本文链接:https://www.haomeiwen.com/subject/oeccsttx.html