swift-闭包和类的声明
//闭包:类似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 = "这是个
最新文章
- unixLike命令拾遗
- 构建自己的PHP框架--实现Model类(2)
- 【读书笔记】iOS-程序进入到后台
- mysql,sql server,oracle 唯一索引字段是否允许出现多个 null 值?
- paper 49:论文退稿?审稿人帮你总结了22个能避免的常见问题
- swing LayoutManager 和多态
- 【练习】手工生成awr报告
- 转ATL对象类型
- Git error- fatal- Needed a single revision
- DOM元素对象的属性和方法(2)
- 苹果应用商店AppStore审核中文指南 分类: ios相关 app相关 2015-07-27 15:33 84人阅读 评论(0) 收藏
- Luogu P3367 【模板】并查集
- Dynamics CRM 请求服务时报access is denied错误
- 休眠(1):sleep和wait的区别
- python之路——8
- Zabbix系列之一——zabbix3.4部署
- 解决AD9中“......has&#160;no&#160;driver”的问题
- 15个优秀的开源项目,让你轻松应对Android开发
- MVC应用程序JsonResult()的练习
- zk节点扩充
热门文章
- aix i节点
- 从html5标准的正式发布到国内CMS的变革
- bzoj 3172 [Tjoi2013]单词(fail树,DP)
- vijosP1210 盒子与球
- 不同的jar里边相同的包名类名怎么区别导入
- Exception in thread ";main"; java.lang.ClassNotFoundException: 解决方法
- HDOJ-ACM1005(JAVA)
- IE-首页跳转到 q160的问题解决
- IE-一根网线二台电脑上网
- XML Drawable与9-Patches