泛型可用于函数,方法,类,枚举,结构体
func repeat<ItemType>(item: ItemType, times: Int) -> ItemType[] {
var result = ItemType[]()
for i in 0..times {
result += item
}
return result
}
var ages = repeat("xxx", 3)
for age in ages {
println("age=\(age)");
}
enum OptionalValue<T> {
case None
case Some(T)
func simpleDescrition() -> String {
switch self {
case OptionalValue<T>.None:
return "none"
case OptionalValue<T>.Some:
return "some"
}
}
}
var possibleInteger: OptionalValue<Int> = OptionalValue.None
println(possibleInteger.simpleDescrition());//none
possibleInteger = OptionalValue.Some(100)
println(possibleInteger.simpleDescrition());//some
在类型名后面使用 where 可以指定多个要求的列表,例如,要求类型实现一个指定的协议,要求两个类型一样,要求
类必须有一个指定的子类???????
func anyCommonElements <T, U where T: Sequence, U: Sequence, T.GeneratorType.Element: Equatable, T.GeneratorType.Element == U.GeneratorType.Element> (lhs: T, rhs: U) -> Bool {
for lhsItem in lhs {
for rhsItem in rhs {
if lhsItem == rhsItem {
return true
}
}
}
println("ssssssss")
return false
}
var b = anyCommonElements([1, 2, 3], [3])
println(b);//true