//闭包:类似Oc中的block 反向传值引起代码的回调

func hasClosureMathes(arr : [Int],value:Int,cb:(num:Int,value : Int)->Bool)->Bool{

for item1 in arr{

if cb(num: item1, value: value){

return true

}

}

return false

}

//in 是闭包的标志

var v1 = hasClosureMathes([1,2,3,4,43,12], 2) { (num, value) -> Bool in

if num < value{

return true

}else{

return false

}

}

println(v1)

//定义一个数组 里面string类型的人名,判断数组里面是否有一个叫小美的人,返回“大家好,我叫小美”如果没有返回“咦,怎么找不到小美”

func findXiaoMei(namelist:[String],name:String,condontion:(num:String,value:String)->Bool)->String{

for findName in namelist{

if condontion(num: findName, value: name){

return "大家好,我叫小美"

}

}

return "咦,怎么找不到小美"

}

var v2 = findXiaoMei(["小美","大黄","小明","小华"], "小美") { (num, value) -> Bool in

num == value//自动判断是true还是false

}

println(v2)

//如果闭包的代码块只有一句代码

var v3 = findXiaoMei(["小美","大黄","小明","小华"], "小啊", {

$0==$1

})

//$0表示传入的第一个参数,$1表示传入的第二个参数

println(v3)

//闭包在实际应用中都有哪些?

//数组的map属性,可以遍历数组,然后对其进行相应的操作

//泛型,比较抽象。它会根据你进行得操作作出判断给你返回相应的值。比如你进行+操作。他就会返回int的数组,如果进行>判断,他就会给你返回true或false的值

var numbers = [24,22,12,23,11]

let mapedNnumbers = numbers.map({

number in number < 10

})

println(mapedNnumbers)

let sortedNumbers = numbers.sorted({

$0<$1

})

println(sortedNumbers)

//总结函数和闭包的区别。

//本质都是一样的,引起代码的回调。只不过是,一个是直接调用函数名,闭包是直接传入代码块

//在完整的闭包写法中,加入func关键字,他就是一个函数

//函数去掉func 加上 in就会变成了闭包

//闭包可以省去参数列表和返回值,用$0 $1.... 代替

//类和对象

//类里面可以有常量,变量和函数

class shape {

var numberOfSide = 0

let defultDscription = "这是个

最新文章

  1. unixLike命令拾遗
  2. 构建自己的PHP框架--实现Model类(2)
  3. 【读书笔记】iOS-程序进入到后台
  4. mysql,sql server,oracle 唯一索引字段是否允许出现多个 null 值?
  5. paper 49:论文退稿?审稿人帮你总结了22个能避免的常见问题
  6. swing LayoutManager 和多态
  7. 【练习】手工生成awr报告
  8. 转ATL对象类型
  9. Git error- fatal- Needed a single revision
  10. DOM元素对象的属性和方法(2)
  11. 苹果应用商店AppStore审核中文指南 分类: ios相关 app相关 2015-07-27 15:33 84人阅读 评论(0) 收藏
  12. Luogu P3367 【模板】并查集
  13. Dynamics CRM 请求服务时报access is denied错误
  14. 休眠(1):sleep和wait的区别
  15. python之路——8
  16. Zabbix系列之一——zabbix3.4部署
  17. 解决AD9中“......has&#160;no&#160;driver”的问题
  18. 15个优秀的开源项目,让你轻松应对Android开发
  19. MVC应用程序JsonResult()的练习
  20. zk节点扩充

热门文章

  1. aix i节点
  2. 从html5标准的正式发布到国内CMS的变革
  3. bzoj 3172 [Tjoi2013]单词(fail树,DP)
  4. vijosP1210 盒子与球
  5. 不同的jar里边相同的包名类名怎么区别导入
  6. Exception in thread &quot;main&quot; java.lang.ClassNotFoundException: 解决方法
  7. HDOJ-ACM1005(JAVA)
  8. IE-首页跳转到 q160的问题解决
  9. IE-一根网线二台电脑上网
  10. XML Drawable与9-Patches