swift函数返回值


无返回值函数

严格来说,虽然无返回值函数被定义,但实际上无返回值函数依然返回 了一个特殊值VoidVoid实际上是一个空元组,没有任何元素,可以写成()

单返回值函数

对于有返回值函数,必须返回一个值,否则会导致编译时错误。但是,调用有返回值的函数时,可以忽略它的返回值,如:

func printAndCount(string: String) -> Int {
    print(string)
    return string.characters.count
}
func printWithoutCounting(string: String) {
    let _ = printAndCount(string: string)
}
printAndCount(string: "hello, world")
// 打印 "hello, world" 并且返回值 12
printWithoutCounting(string: "hello, world")
// 打印 "hello, world" 但是没有返回任何值

多返回值

多返回值函数,可以使用元组,作为复合值返回;
元组成员不需要在返回时命名,因为名字已经在定义返回值类型时指定了。

可选元组

可选元组如(Int, Int)? ,区别于(Int?, Int?)

func minMax(array: [Int]) -> (min: Int, max: Int)? {
    if array.isEmpty { return nil }
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}

你可以使用可选绑定来检查函数返回的是一个存在的元组值还是 nil(像一般可选类型一样)

if let bounds = minMax(array: [8, -6, 2, 109, 3, 71]) {
    print("min is \(bounds.min) and max is \(bounds.max)")
}
// 打印 "min is -6 and max is 109

知识共享许可协议本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,请务必在遵守许可协议的前提下转载。
发布时间:2018-11-26 15:27:13 阅读:558 标签:技术Swift笔记