Swift 闭包表达式-来自CocoaChina
2017-08-04 13:39
295 查看
//: Playground - noun: a place where people can play
import UIKit
var title =
"Swift 闭包表达式-来自CocoaChina"
var describe =
"1,利用上下文推断参数和返回值类型;2,单表达式闭包可以省略return关键字;3,参数名称简写;4,Trailing闭包语法"
//1,字母逆序排序
let names = ["China","Alex","Barrt","Ewa","Cocoa","Eye"]
//系统提供sort函数:排序两个参数:a,已经类型的数组;b,排序闭包
(String,String) -> Bool
func backWards(s1:String,s2:String) ->
Bool
{
return s1 > s2
}
var first =
"第一种排序方式:排序函数"
var firstReversed = names.sorted(by:backWards)
/*
闭包表达式的形式
{(parameters) -> returnType in
statements
}
*/
var second =
"第二种排序方式:排序内联闭包"
var secondReversed = names.sorted { (s1:String,
s2:String) -> Bool
in
return s1 > s2
}
// in 表示闭包的参数和返回值类型定义已经完成,闭包函数体即将开始
//根据上下文推断类型
var secondReversedA = names.sorted()
var secondReversedB = names.sorted { (s1, s2) ->
Bool in
return s1 > s2
}
var third =
"第三种排序方式:运算符函数"
var thirdReversed = names.sorted(by: >)
var trailing = "Trailing闭包"
var trailingDescribe =
"如果是一个很长的闭包表达式作为最后一个参数传递给函数,可以使用trailing闭包增强函数的可读性"
var map = "map方法的使用"
//将Int类型的数组转化为对应的字符串类型的数组
let digitnames = [0:"零",1:"一",2:"二",3:"三",4:"四",5:"五",6:"六",7:"七",8:"八",9:"九"]
let numbers = [14,305,9,94]
let strings = numbers.map { ( num) ->
String in
var str =
""
var currentNum = num
while currentNum >
0 {
str = digitnames[(currentNum%10)]!
+ str
currentNum = currentNum/10
}
return str
}
// ! 代表 force-unwrap
var caputure = "捕获Caputure"
var caputureDescribe =
"闭包可以在其定义的上下文中捕获常量或变量。即使定义这些常量和变量的作用域已经不存在了,闭包仍然可以在闭包函数体内引用和修改这些值"
import UIKit
var title =
"Swift 闭包表达式-来自CocoaChina"
var describe =
"1,利用上下文推断参数和返回值类型;2,单表达式闭包可以省略return关键字;3,参数名称简写;4,Trailing闭包语法"
//1,字母逆序排序
let names = ["China","Alex","Barrt","Ewa","Cocoa","Eye"]
//系统提供sort函数:排序两个参数:a,已经类型的数组;b,排序闭包
(String,String) -> Bool
func backWards(s1:String,s2:String) ->
Bool
{
return s1 > s2
}
var first =
"第一种排序方式:排序函数"
var firstReversed = names.sorted(by:backWards)
/*
闭包表达式的形式
{(parameters) -> returnType in
statements
}
*/
var second =
"第二种排序方式:排序内联闭包"
var secondReversed = names.sorted { (s1:String,
s2:String) -> Bool
in
return s1 > s2
}
// in 表示闭包的参数和返回值类型定义已经完成,闭包函数体即将开始
//根据上下文推断类型
var secondReversedA = names.sorted()
var secondReversedB = names.sorted { (s1, s2) ->
Bool in
return s1 > s2
}
var third =
"第三种排序方式:运算符函数"
var thirdReversed = names.sorted(by: >)
var trailing = "Trailing闭包"
var trailingDescribe =
"如果是一个很长的闭包表达式作为最后一个参数传递给函数,可以使用trailing闭包增强函数的可读性"
var map = "map方法的使用"
//将Int类型的数组转化为对应的字符串类型的数组
let digitnames = [0:"零",1:"一",2:"二",3:"三",4:"四",5:"五",6:"六",7:"七",8:"八",9:"九"]
let numbers = [14,305,9,94]
let strings = numbers.map { ( num) ->
String in
var str =
""
var currentNum = num
while currentNum >
0 {
str = digitnames[(currentNum%10)]!
+ str
currentNum = currentNum/10
}
return str
}
// ! 代表 force-unwrap
var caputure = "捕获Caputure"
var caputureDescribe =
"闭包可以在其定义的上下文中捕获常量或变量。即使定义这些常量和变量的作用域已经不存在了,闭包仍然可以在闭包函数体内引用和修改这些值"
相关文章推荐
- 6.3 Swift闭包表达式作为回调函数
- 6.4 Swift闭包表达式语法优化
- Swift闭包表达式
- Swift 闭包表达式
- Swift 闭包表达式
- swift2.0 用闭包表达式 代替 protocol 传值回调
- Swift基础语法: 23 - Swift的闭包简介, Sorted函数, 闭包的表达式语法, 根据上下文推断类型, 参数名简写, 运算符函数
- SWIFT——闭包表达式
- Swift学习笔记 闭包表达式
- Swift闭包表达式
- Swift2.0中使用闭包表达式进行类之间进行通信
- Swift 闭包表达式
- Swift使用闭包表达式
- 【note】Swift之闭包表达式的几种简化缩写形式
- Swift基础-闭包表达式语法
- Swift使用闭包表达式
- Swift闭包表达式
- swift3 闭包表达式
- Swift的闭包(一):闭包简介、闭包表达式的优化
- swift学习之三:闭包表达式