泛型

    xiaoxiao2021-04-03  35

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

    func  函数名<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类型的占位符,这个占位符就可以在函数的实际调用中被替换成真的类型。 结构体泛型

    structuralWXRect<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)")

    类中泛型

    classSwift<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语句 语句要求一个关联类型遵循一个特定的协议,或那个特定的类型参数和关联类型可以是相同的

    转载请注明原文地址: https://ju.6miu.com/read-665894.html

    最新回复(0)