您的位置:首页 > 移动开发 > Swift

swift学习-闭包

2014-08-07 00:49 197 查看
// Playground - noun: a place where people can play

import Cocoa

var str = "Hello, playground"
/*
闭包
*/

let names = ["chris","Alex","Ewa","Barry","Daniella"]

func backwards(s1:String,s2:String) -> Bool {
return s1>s2
}
//排序
var reversed = sort(names)
var reversed1 = sort(names,backwards)
//闭包表达式语法
var reversed2 = sort(names,{(s1:String,s2:String) -> Bool in
return s1 > s2
})
//省去参数类型,
var reversed3 = sort(names,{s1,s2 in return s1 > s2})
//单表达式闭包隐式返回,省去return
var reversed4 = sort(names,{s1,s2 in s1 > s2})

//参数名缩写
var reversed5 = sort(names,{$0 > $1})
//运算符函数
var reversed6 = sort(names,>)
//尾随闭包
var reversed7 = sort(names){$0>$1}
reversed7[0]

let digitNames = [
0: "Zero", 1: "One", 2: "Two",   3: "Three", 4: "Four",
5: "Five", 6: "Six", 7: "Seven", 8: "Eight", 9: "Nine"
]

let numbers = [16, 58, 510]

let strings = numbers.map {
(var number) -> String in
var output = ""
while number > 0 {
output = digitNames[number % 10]! + output
number /= 10
}
return output
}
strings[0]
strings[1]

//捕获值

func makeIncrementor(forIncrement amount: Int) -> () -> Int {
var runningTotal = 0
func incrementor() -> Int {
runningTotal += amount
return runningTotal
}
return incrementor
}

//函数有int类型的参数,外部命名forIncrement,内部命名amount
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: