Swift 基础语法三--函数和闭包

// Playground - noun: a place where people can play

import Cocoa
//函数和闭包

//函数,使用func关键字声明函数:
func greet(name:String, day:String) -> String {
    return "Hello \(name), today is \(day)."
}
greet("Bob", "Tuesday")


//通过元组(Tuple)返回多个值
func getGasPrices() -> (Double, Double, Double){
    return (3.59, 3.69, 3.79)
}
getGasPrices()

//支持带有变长参数的函数
func sumOf(numbers: Int...) -> Int {
    var sum = 0
    for number in numbers {
        sum += number
    }
    return sum
}

sumOf()
sumOf(42, 597, 12)

//函数也可以嵌套
func returnFifteen() -> Int {
    var y = 10
    func add() {
        y += 5
    }
    add()
    return y
}

returnFifteen()

//作为头等对象,函数既可以作为返回值,也可以作为参数传递

func makeIncrementer() -> (Int -> Int) {
    func addOne(number: Int) -> Int {
        return 1 + number
    }
    return addOne
}
var increment = makeIncrementer()
increment(7)

func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool {
    for item in list {
        if condition(item) {
            return true
        }
    }
    return false;
}

func lessThanTen(number: Int) -> Bool {
    return number < 10
}
var numbers = [20, 19, 7, 12]
hasAnyMatches(numbers, lessThanTen)

//闭包--本质上来说,函数是特殊的闭包,Swift中可以利用{}声明匿名闭包

numbers.map({
    (number: Int) -> Int in
    let result = 3 * number
    return result
    })
//当闭包的类型已知时,可以使用下面的简化写法
numbers.map({ number in 3 * number })
//此外还可以通过参数的 位置来使用参数,当函数最后一个参数是闭包时,可以使用下面的语法:
sort([1, 5, 3, 12, 2]) {$0 > $1}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值