美文网首页
Swift 泛型 理解

Swift 泛型 理解

作者: 可爱的活火山 | 来源:发表于2018-04-11 15:06 被阅读10次

在swift中,class、struct、enums都可以是用参数化类型来表达泛型的,只有在协议中需要使用associatedtype关键字来表达参数化类型。为什么协议不采用这样的语法形式呢?

采用语法的参数化方式的泛型其实定义了整个类型的家族,在概念上这对于一个可以具体实现的类型(class、struct、enums)是有意义的,比方说Array,Array。但对于协议来说,协议表达的含义是single的。你只会实现一次GeneratorType,而不会实现一个GeneratorType协议,接着又实现另外一个GeneratorType协议。

协议在swift中有两个目的,第一个目的是用来实现多继承(swift语言被设计为单继承的),第二个目的是强制实现者必须准守自己所指定的泛型约束。关键字associatedtype是用来实现第二个目的的。在GeneratorType中由associatedtype指定的Element,是用来控制next()方法的返回类型的。而不是用来指定GeneratorType的类型的。

1.函数泛型

`func SwapTwoValues (inouta: T,inoutb :T)    { let tempValue = a      a = b      b = tempValue}`

相关文章

  • Swift 泛型 理解

    在swift中,class、struct、enums都可以是用参数化类型来表达泛型的,只有在协议中需要使用asso...

  • 12.Dart-泛型

    /** * 泛型: (和swift里面的一样) * 通俗理解: 泛型就是解决 类, 接口, 方法的重用性, 以及对...

  • Swift-泛型笔记

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

  • [ WWDC2018 ] - Swift 泛型 Swift Ge

    Swift 泛型历史 我们首先来回顾一下 Swift 中对于泛型支持的历史变更,看看现在在 Swift 中,泛型都...

  • Swift 运用协议泛型封装网络层

    Swift 运用协议泛型封装网络层 Swift 运用协议泛型封装网络层

  • 2021-12-01

    swift5基本语法-泛型函数和泛型类型 Swift中泛型可以将类型参数化,提高代码复用率,减少代码量。 一、泛型...

  • swift 泛型

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

  • 使用Web浏览器编译Swift代码,及Swift中的泛型

    使用Web浏览器编译Swift代码,及Swift中的泛型 使用Web浏览器编译Swift代码,及Swift中的泛型

  • 【Swift】泛型常见使用

    1、Swift泛型4种 泛型函数泛型类型泛型协议泛型约束 2、泛型约束3种 继承约束:泛型类型 必须 是某个类的子...

  • OneDayOneSwift[23] - Generics

    泛型是 Swift 的强大特性之一,许多 Swift 标准库是通过泛型代码构建的。事实上,泛型的使用贯穿了整本语言...

网友评论

      本文标题:Swift 泛型 理解

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