swift—5 Generics泛型
2014-06-11 17:47
141 查看
泛型可用于函数,方法,类,枚举,结构体
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
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
相关文章推荐
- Symantec Norton Ghost v12.0 Retail ISO 多国语言版 下载
- C# 泛型的简单理解(安全、集合、方法、约束、继承)分享
- .NET开发基础:从简单的例子理解泛型 分享
- RadioButtonList绑定图片及泛型Dictionary应用
- 关于C#泛型列表List<T>的基本用法总结
- list泛型自定义排序示例
- 使用.NET中的Action及Func泛型委托深入剖析
- java使用泛型实现栈结构示例分享
- 基于java中泛型的总结分析
- 多个java泛型示例分享
- 苹果公司推出的新编程语言Swift简介和入门教程
- 让IIS支持 .iso 7z torrent apk等文件下载的设置方法[图文]
- Java编程思想里的泛型实现一个堆栈类 分享
- Java8中对泛型目标类型推断方法的改进
- 【原创】OpenStack Swift源码分析(二)ring文件的生成
- 【原创】Swift服务启动架构分析
- Swift 中proxy-server.conf启动顺序总结
- 【原创】OpenStack Swift源码分析(三)proxy服务启动
- 【原创】OpenStack Swift源码分析(四)proxy服务响应