您的位置:首页 > 移动开发 > Swift

swift 泛型

2015-06-24 22:26 399 查看

泛型

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

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>
是等价的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: