码迷,mamicode.com
首页 > 编程语言 > 详细

swift 泛型

时间:2015-06-24 23:58:34      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:

泛型

在尖括号里写一个名字来创建一个泛型函数或者类型。

func repeat<ItemType>(item: ItemType, times: Int) -> [ItemType] {

    var result = [ItemType]()

    for i in 0..<times {

         result.append(item)

    }

    return result

}

repeat("knock", 4)

 

你也可以创建泛型类、枚举和结构体。

enum OptionalValue<T> {

    case None

    case Some(T)

}

var possibleInteger: OptionalValue<Int> = .None

possibleInteger = .Some(100)

 

在类型名后面使用where来指定对类型的需求,比如,限定类型实现某一个协议,限定两个类型是相同的,或者限定某个类必须有一个特定的父类

func anyCommonElements <T, U where T: SequenceType, U: SequenceType, T.Generator.Element: Equatable, T.Generator.Element == U.Generator.Element> (lhs: T, rhs: U) -> Bool {

    for lhsItem in lhs {

        for rhsItem in rhs {

            if lhsItem == rhsItem {

                return true

            }

        }

    }

   return false

}

简单起见,你可以忽略where,只在冒号后面写协议或者类名。<T: Equatable><T where T: Equatable>是等价的。

swift 泛型

标签:

原文地址:http://www.cnblogs.com/cxc-1314/p/4598806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!