Swift--08闭包使用
来源:互联网 发布:vb csng 编辑:程序博客网 时间:2024/05/22 14:17
/*闭包有三种形式
1、全局函数
2、内嵌函数
3、闭包表达式
闭包语法格式
{
(参数列表) ->返回类型 in
闭包体
}
*/
var array = ["C","B","E","A","D"]
//以前可以自定义函数名称传递升降序。然而我现在发现不能传递自定义函数名玩了。
func backwords(s1: String, s2:String) -> Bool {
return s1 > s2
}
//一、默认的升序排列
var sortedArray = array.sorted()
print(sortedArray) //["A", "B", "C", "D", "E"]
//传递闭包表达式展开式:降序排列
var sortedArray1 = array.sorted(by:{(s1:String, s2: String) ->Bool in
return s1 > s2// 使用‘<’升序排列
})
print(sortedArray1)//["E", "D", "C", "B", "A"]
//二、Swift的灵活之处再次嘚瑟
var sortedArray2 = array.sorted(by:>)//降序排列
print(sortedArray2) // ["E", "D", "C", "B", "A"]
var sortedArray3 = array.sorted(by:<)//升序排列
print(sortedArray3) // ["A", "B", "C", "D", "E"]
//可以通过参数位置而不是参数名字来引用参数----这个方法在非常短的闭包中非常有用。当一个闭包作为最后一个参数传给一个函数的时候,他可以直接跟在括号后面。当一个闭包是传给函数的唯一参数,可以完全忽略括号
let sortedArray4 = array.sorted{$0 > $1}
print(sortedArray4)//["E", "D", "C", "B", "A"]
//下面的三条用法不能玩了。。。。
////可以忽略参数类型(会自动推断),()也可省略,返回值类型也可省略
//var sortedArray = array.sort({s1, s2 in return s1 > s2})
//
////单表达式闭包,可以省了return关键字
//var sortedArray = array.sort({s1, s2 in s1 > s2})
//
////闭包内可以使用简化参数:$0、$1,此时可以省略参数及in
//var sortedArray = array.sort({$0 > $1})
//
//三、map的使用
/*
函数实际上是一种特殊的闭包:它是一段能之后被调取的代码。闭包中的代码能访问闭包所建作用域中能得到的变量和函数,即使闭包是在一个不同的作用域被执行的。你可以使用{}来创建一个匿名闭包。使用 in 将参数和返回值类型声明与闭包函数体进行分离。
*/
let numberArray = [15,20,8,10,21]
//1、map的完全式
let mappedArray = numberArray.map { (number:Int) -> Int in
let result =2 * number
return result
}
print(mappedArray);//[30, 40, 16, 20, 42]
//有很多种创建更简洁的闭包的方法,如果一个闭包的类型已知,比如作为一个回调函数,你可以忽略参数的类型和返回值。单个语句闭包会把语句的值当做结果返回。
//2、map精简式
let mapppedNumbers = numberArray.map({numberin 3 * number})
print(mapppedNumbers)//[45, 60, 24, 30, 63]
//3、map的应用
let cast = ["VIVIEN","Marlon", "Kim","Karl"]
let lowercaseNames = cast.map { $0.lowercased() }//直接获取元素的全部小写字母
print(lowercaseNames)//["vivien", "marlon", "kim", "karl"]
let letterCounts = cast.map { $0.characters.count }//直接获取元素的字符串字母个数。
print(letterCounts)//[6, 6, 3, 4]
- Swift--08闭包使用
- Swift使用闭包表达式
- Swift闭包的使用
- Swift-闭包简单使用
- Swift 函数,闭包使用
- swift闭包的使用
- Swift 闭包的使用
- Swift闭包的使用
- 【swift基础】08在swift如何使用闭包、懒加载、和自定义类
- Swift入门 08闭包
- Swift 的闭包使用(1)
- Swift-闭包的使用和总结
- Swift 闭包的使用(尾随闭包)
- 【Swift初见】Swift闭包
- Swift 闭包(六)
- Swift之闭包
- swift closure 闭包
- swift,闭包
- JAVA专项练习(二)
- react源码分析
- TEE
- Unable to compile class for JSP
- 高等数学第一章重点总结
- Swift--08闭包使用
- 创建maven web项目
- spring2.5使用jdk1.7及以上解决办法
- log4j.properties配置文件
- 一看就明白的爬虫入门讲解:基础理论篇
- ubuntu安装deb包
- springmvc注入properties文件属性
- JQuery插件:图片放大镜
- 接口post的syso输出调用的方法