Swift 闭包
来源:互联网 发布:软件标识 编辑:程序博客网 时间:2024/06/05 07:49
// 函数作为参数的情况
// 第一层函数,参数为一个数组,和一个比较的函数,返回值是一个bool类型
// 比较函数,判断第一层函数传入的数组中是否有大于10的数,如果大于10返回true,如果小于10返回false cb:(num:Int, value:Int) -> Bool
func hasAnyMatches(numbers:[Int], condition:(Int)->Bool) ->Bool{
for numin numbers {
if condition(num){
returntrue
}
}
returnfalse
}
func moreThanTen (num:Int) ->Bool {
if num > 10 {
returntrue
}else{
returnfalse
}
}
print(hasAnyMatches([5,3,15,6,5,4],moreThanTen))
// print(hasAnyMatches([5,3,15,6,5,4], condition: moreThanTen)) // xcode7 以后的方法
// 以下是用闭包实现上面的方法
// 闭包 , 类似于OC中的block,引起代码的回调
// 闭包作为函数参数,cb就是一个闭包
func hasClosureMathes (arr:[Int], value:Int, cb:(num:Int, value:Int) -> Bool) ->Bool{
for item1in arr {
if cb(num: item1, value: value){
returntrue
}
}
returnfalse
}
// in 是闭包的一个标志,它的前面是参数列表和返回值类型,后面是实现的代码
// 函数与闭包的区别对比 就是一个有一个func 另一个有 in
var v1 = hasClosureMathes([46,65,49,15,36,26], 32) { (num, value) ->Bool in
if num < value {
returntrue
}else{
returnfalse
}
}
print(v1)
print("\n")
var v2 = hasClosureMathes([22,986,695,621,61,4,631], 300) { (num, value) ->Bool in
if num < value {
returntrue
}else{
returnfalse
}
}
print(v2)
// 定义一个数组,里面String类型的人名,判断数组里面是否有一个叫小美的人,如果有,返回“大家好,小美在这呢”,如果没有,返回“怎么找不到小美”
func hasClosuerMei(arr:[String], name:String, condition:(str:String, name:String) -> Bool) ->String{
for name1in arr{
if condition(str: name1, name: name){
return ("大家好,小美在这呢")
}
}
return ("怎么找不到小美")
}
var findM = hasClosuerMei(["小d","夺", "奇才"],"小美") { (str, name) -> Boolin
if str == name{
returntrue
}else{
returnfalse
}
}
print(findM)
- 【Swift初见】Swift闭包
- Swift 闭包(六)
- Swift之闭包
- swift closure 闭包
- swift,闭包
- Swift闭包表达式
- [Swift]闭包
- Swift 闭包
- 7.Swift-闭包
- Swift-闭包
- Swift 闭包
- Swift-Closures 闭包
- swift 闭包(closure)
- 【swift-总结】闭包
- swift闭包总结
- swift中的闭包
- Swift:闭包(Closures)
- swift--闭包
- 查看局域网内在线ip
- java调用TD的COM组件OTAClient80.dll实现从TD中取数
- IDEA中运行DirectKafkaWordCount程序
- Java之路
- weblogic jvm -Dsun.zip.disableMemoryMapping=true
- Swift 闭包
- [sicily]1035. DNA matching
- 分析比较KafkaWordCount及DierctKafkaWordCount
- 单立模式 Java
- 计算机网络之网络安全
- python 字符串和编码
- IDEA中运行KafkaWordCount程序
- PDF转换器的使用步骤
- nyoj 120 校园网络 【强连通】