swift学习-闭包

// 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值