Swift泛型

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

泛型是为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 条件>

相关文章
|
6月前
|
存储 安全 Swift
Swift 语言:什么是 Swift 的泛型(Generics)?
Swift 语言:什么是 Swift 的泛型(Generics)?
83 0
|
1天前
|
Swift iOS开发
Swift 方法
10月更文挑战第29天
12 4
|
1天前
|
存储 Swift iOS开发
Swift 类
10月更文挑战第29天
5 0
|
2天前
|
Swift iOS开发
Swift 枚举
10月更文挑战第28天
7 0
|
Swift
Swift实用小册21: Generics泛型的使用
在本章中,你将学会Generics泛型的使用方法。
174 0
Swift实用小册21: Generics泛型的使用
|
存储 安全 Swift
Swift5.1—泛型
Swift5.1—泛型
163 0
Swift5.1—泛型
|
存储 安全 Swift
Swift5.1—指定构造器和便利构造器
Swift5.1—指定构造器和便利构造器
543 0
Swift5.1—指定构造器和便利构造器
【Swift4】(7) 枚举 | 应用
【Swift4】(7) 枚举 | 应用
115 0
|
存储 编译器
Swift-进阶 14:泛型
Swift-进阶 14:泛型
235 0
Swift5.1—必要构造器
Swift5.1—必要构造器
120 0