• Swift学习笔记(7):函数


    目录:

    • 函数参数与返回值
    • 参数标签和参数名称
    • 可变参数
    • 传入传出参数
    • 函数类型
    • 嵌套函数

    函数是一段完成特定任务的独立代码片段,使用func标示函数名,使用->标示返回类型。

    ・可以为函数参数设置默认值,以简化函数调用
    ・函数参数具有传入传出特性
    ・函数类型由函数的参数值类型和返回值类型唯一标定,与变量一样可以作为函数参数或返回值
    ・函数可以嵌套封装定义在其他函数体中,且可以作为返回值返回函数
     func greet(person: String) -> String {
         let greeting = "Hello, " + person + "!"
         return greeting
    }
    函数参数与返回值
    // 无返回值函数 
    func greet(person: String) {
         print("Hello, (person)!")
    }
    
    // 无参函数
    func sayHelloWorld() -> String {
         return "hello, world"
    }
    
    // 多参有返回值函数
    func minMax(array: [Int]) -> (min: Int, max: Int) {
        // logic codes
        return (currentMin, currentMax)
    }
    
    // 返回可选参数
    func minMax(array: [Int]) -> (min: Int, max: Int)? {
        // return nil  条件不满足时返回nil
        return (currentMin, currentMax)
    }
    参数标签和参数名称

    每个函数参数都有一个标签和名称。参数标签在函数调用时外部使用,写在实参前。参数名称在函数体内使用,默认情况下函数使用名称作为标签。

    // 具有函数参数标签和名称
    func someFunction(argumentLabel parameterName: Int) {
        // 在函数体内,parameterName 代表参数值
    }
    
    // 没有函数参数标签,内外部都是用参数名称
    func someFunction(parameterName: Int) {
        // 在函数体内,parameterName 代表参数值
    }
    
    // 省略函数参数标签,外部调用函数时可以在实参前省略参数标签
    func someFunction(_ parameterName: Int) {
        // 在函数体内,parameterName 代表参数值
    }
    
    // 具有默认值的函数参数
    func someFunction(parameterWithoutDefault: Int, parameterWithDefault: Int = 12) {
        // 函数调用时不传参数2,parameterWithDefault值以12传入。
    }
    someFunction(parameterWithoutDefault: 3, parameterWithDefault: 6)
    someFunction(parameterWithoutDefault: 4)
    可变参数

    可变参数可以接受0个或多个值,且一个函数有且仅有一个可变参数。 

    func arithmeticMean(_ numbers: Double...) -> Double {
        var total: Double = 0
        for number in numbers {
            total += number
        }
        return total / Double(numbers.count)
    }
    传入传出参数

    可以使用inout标示一个函数参数为传入传出参数类型,可变参数(Int...)和常量不能作为输入输出参数。变量作为输入输出实参时需要前加 & 。

    var someInt = 3
    var anotherInt = 107
    swapTwoInts(&someInt, &anotherInt)
    函数类型

    Swift语言中函数类型可以像其他类型一样定义变量和常量。

    var mathFunction: (Int, Int) -> Int = addTwoInts

    函数类型作为参数和返回值:

    func printMathResult(_ mathFunction: (Int, Int) -> Int, _ a: Int, _ b: Int) {
         print("Result: (mathFunction(a, b))")
    }
    
    func chooseStepFunction(backward: Bool) -> (Int) -> Int {
        return backward ? stepBackward : stepForward
    }
    嵌套函数
    func chooseStepFunction(backward: Bool) -> (Int) -> Int {
        func stepForward(input: Int) -> Int { return input + 1 }
        func stepBackward(input: Int) -> Int { return input - 1 }
        return backward ? stepBackward : stepForward
    }
    声明:该系列内容均来自网络或电子书籍,只做学习总结!
  • 相关阅读:
    创建一个 mac 的后台进程(daemon)
    Centos 7创建一个服务
    MAC配置VIM环境
    Spark源码剖析(九):TaskScheduler原理与源码剖析
    Spark源码剖析(八):stage划分原理与源码剖析
    教你如何写递归(数学归纳法,干货强推!)
    Spark源码剖析(七):Job触发流程原理与源码剖析
    剑指offer:变态跳台阶
    Spark源码剖析(六):Worker原理与源码剖析
    Spark源码剖析(五):Master原理与源码剖析(下)
  • 原文地址:https://www.cnblogs.com/Youhei/p/6878321.html
Copyright © 2020-2023  润新知