iOS 可选型与泛型

作者: A_rcher34 | 来源:发表于2019-05-07 17:00 被阅读2次

可选型

  • 在swift中,可选型是为了表达当一个变量值为空的情况。当一个变量值为空时,它就是nil。在swift中,无论变量是引用类型还是值类型,都可以是可选型变量。

  • 在Objective-C中,没有明确提出可选型的概念。然而其引用类型却可以为nil,以此来标志其变量值为空的情况。而swift将这一理念扩大到值类型,并且明确提出了可选型的概念。

泛型

在swift中,泛型主要是为了增加代码的灵活性而生的:它可以使对应的代码满足任意类型的变量或方法。

举例:一种方法可以交换两个Int值

func swap(_ a: inout Int, _ b: inout Int) {
    (a, b) = (b, a);
}

这种方法虽然正确但并不高效。如果交换的类型改为float,则有需要重写一遍方法。泛型就是为了解决这类问题而来的:希望有一个一般性的方法,可以交换任意类型的变量。

func swap<T>(_ a: inout T, _ b: inout T) {
    (a, b) = (b, a);
}

因为swift是类型安全的语言,所以这里交换的两个变量的类型必须一致。

相关文章

  • iOS 可选型与泛型

    可选型 在swift中,可选型是为了表达当一个变量值为空的情况。当一个变量值为空时,它就是nil。在swift中,...

  • iOS 强大的泛型

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

  • Java 泛型

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

  • 泛型的使用

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

  • 【泛型】通配符与嵌套

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

  • go 泛型

    go 泛型 1. 类型参数(Type parameters) Go语言的泛型(Generic)叫做类型参数。泛型可...

  • 重走安卓进阶路——泛型

    ps.原来的标题 为什么我们需要泛型? 泛型类、泛型接口和泛型方法(泛型类和泛型接口的定义与泛型方法辨析); 如何...

  • TypeScript 06 - 泛型

    基本示例 使用泛型变量 泛型类型 泛型类 泛型约束 1. 基本示例 考虑到组件的可重用性,引入了泛型的概念,可以使...

  • 泛型

    与Java泛型相同,Kotlin同样提供了泛型支持。对于简单的泛型类、泛型函数的定义,Kotlin 与 Java ...

  • Swift 5.1 (21) - 泛型

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

网友评论

    本文标题:iOS 可选型与泛型

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