美文网首页
理顺iOS(一)泛型

理顺iOS(一)泛型

作者: 街角没有咖啡店 | 来源:发表于2020-04-14 23:29 被阅读0次

1.1 泛型介绍

泛型的概念最早出自C++,Swift的泛型与其设计思路相同,与Java不同。

优缺点

C++与Swift:是编译时多态技术,编译器确定类型,运行时不需要计算。
缺点:生成的机器码二进制包大一些,虽执行快但可能有更多I/O。
Java:是运行时多态,运行时才确定的。
缺点:运行时才能看到。

使用泛型让代码更简洁和安全。减少强制转换以及其带来的出错风险。

let nameInt = [111,222,333]
let nameString = ["Jack","John","Joker"]
func getName<T>(nameList: [T]){
    for name in nameList{
        print("\(name)")
    }
}
getName(nameInt)
getName(nameString)

1.2 类型约束

使用泛型时可以对定义的泛型遵守Hashable协议,Swift中。String、Int、Double等都是遵循Hashable协议的。

Hashable协议是继承Equatable协议的,在遵循了Equatable协议之后,就可以支持“==”或“!=”比较。

1.3 泛型和Any的区别

泛型和Any类型虽然看起来相似,但其实是有区别的。他们的区别在于Any类型会避开类型检查,所以尽量少用或不用。

使用泛型能够保证参数和返回值的类型相同

func add<T>(_ input:T) -> T{
   //...
   return input
}

相关文章

  • 理顺iOS(一)泛型

    1.1 泛型介绍 泛型的概念最早出自C++,Swift的泛型与其设计思路相同,与Java不同。 优缺点 C++与S...

  • iOS 强大的泛型

    iOS 强大的泛型 iOS 强大的泛型

  • Swift 5.1 (21) - 泛型

    级别: ★☆☆☆☆标签:「iOS」「Swift 5.1 」「泛型」作者: 沐灵洛审校: QiShare团队 使用泛...

  • swift4 泛型(一)

    swift 泛型 OC 是没有泛型也不支持命命空间的,但是swift中这两者都有,本章主要介绍 泛型 对于iOS开...

  • iOS泛型

    泛型:限制类型 开发中使用场景:限制集合中的类型,注意:只能检测方法的调用,因为声明的泛型,只能放在方法中当一个类...

  • 【泛型】通配符与嵌套

    上一篇 【泛型】泛型的作用与定义 1 泛型分类 泛型可以分成泛型类、泛型方法和泛型接口 1.1 泛型类 一个泛型类...

  • 如何理解IOS中泛型

    在平时开发过程中,几乎所有人都接触过泛型这个概念,苹果从IOS9以后引入了泛型这个概念,从系统库到我们自定义泛型中...

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

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

  • 泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型接口 泛型通配符 泛型方法 静态方法与...

  • Java 泛型

    泛型类 例如 泛型接口 例如 泛型通配符 泛型方法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型上下边...

网友评论

      本文标题:理顺iOS(一)泛型

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