Swift泛型

Swift泛型,第1张

概述泛型是为Swift编程灵活性的一种语法,在函数、枚举、结构体、类中都得到充分的应用,它的引入可以起到占位符的作用,当类型暂时不确定的,只有等到调用函数时才能确定具体类型的时候可以引入泛型。 泛型函数 定义 fun 函数名<T,S>(形参列表)->返回值类型{ //函数体...} 例子: func copyArray<T>(src:[T],inout dest:[T]) { f

泛型是为Swift编程灵活性的一种语法,在函数、枚举、结构体、类中都得到充分的应用,它的引入可以起到占位符的作用,当类型暂时不确定的,只有等到调用函数时才能确定具体类型的时候可以引入泛型。

泛型函数 定义
fun 函数名<T,S>(形参列表)->返回值类型{     //函数体...}
例子:
func copyArray<T>(src:[T],inout dest:[T]) {    for element in src    {     dest.append(element)    }     var arr=[1,2]    copyArray([3,4],dest: &arr)    print(arr)

在这里我们运用泛型为函数提供了一个T类型的占位符,这个占位符就可以在函数的实际调用中被替换成真是类型。

结构体泛型
struct WXRect<T>{    var x:T    var y:T    var Add:(T,T)        {        return (self.x,self.y)        } }     let rect=WXRect<Double>(x: 20.0,y: 20.0)    let (30.0,20.0)=rect.Add    print("(\(x),\(y))")
类中泛型
class Swift<T> {    var info:T    init(info:T)   {    self.info=info    }}    var swift=Swift<String>(info:"Swift泛型")    print("\(swift.info)真强大")
类型约束

上面的例子中,泛型形参没有什么约束,我们可以对泛型传入任何值,但在实际中,或许有时候我们需要为泛型增加某些特定的约束。

定义类型参数时增加一个限制,约束这个类型参数必须继承自特定的类,或遵守一个特定的协议或合成协议,这就叫做类型约束。

语法格式:

<类型形参1:父类,类型形参2:协议,类型形参3:protocol<协议1,协议2>,..>

Where语句

where语句要求一个关联类型遵循一个特定的协议,或那个特定的类型参数和关联类型可以是相同的

<类型形参:父类型,类型形参2:协议,…where 条件> 总结

以上是内存溢出为你收集整理的Swift泛型全部内容,希望文章能够帮你解决Swift泛型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1090782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存