泛型

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值