iOS 可选型与泛型

可选型

  • 在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是类型安全的语言,所以这里交换的两个变量的类型必须一致。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容