【学习】重学Swift5-函数和闭包

五、函数和闭包

函数

  1. 常见形式

    // 无形式参数的函数
    func sayHelloWorld() -> String {
        return "hello world"
    }
    print(sayHelloWorld())
    
    // 多形式参数的函数
    func greet(person: String, alreadyGreeted: Bool) -> String {
        if alreadyGreeted {
            return greetAgain(person: person)
        } else {
            return greet(person: person)
        }
    }
    greet(person: "tim", alreadyGreeted: true)
    
    // 无返回值的函数
    func greet(person: String) {
        print("hello, \(person)!")
    }
    
    // 多返回值的函数
    func minMax(array: [Int]) -> (min: Int, max: Int) {
        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)
    }
    
    // 可选元组返回类型
    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)
    }
    
    // 隐式返回的函数 
    // 如果整个函数体是一个单一表达式,那么函数可以隐式返回这个表达式
    func greeting(person: String) -> String {
        "hello " + person + "!"
    }
    print(greeting(person: "Tom"))
    
  2. 实参标签、形参名和返回值

     /* 每一个函数的形式参数都包含实际参数标签和形式参数名。实际参数标签用在调用函数的时候;在调用函数的时候每一个实际参数前面都要写实际参数标签。形式参数名用在函数的实现当中。默认情况下,形式参数使用它们的形式参数名作为实际参数标签。
       所有的形式参数必须有唯一的名字。尽管有可能多个形式参数拥有相同的实际参数标签,唯一的实际参数标签有助于让你的代码更加易读
    */
    func someFunction(firstParameterName: Int, secondParameterName: Int) {
        
    }
    someFunction(firstParameterName: 1, secondParameterName: 3)
    上面的
上一篇:swift5 接入内购全流程


下一篇:swift5表情键盘项目封装