zoukankan      html  css  js  c++  java
  • 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
    }
    声明:该系列内容均来自网络或电子书籍,只做学习总结!
  • 相关阅读:
    js中的原生Ajax和JQuery中的Ajax
    this的用法
    static的特性
    时政20180807
    java compiler没有1.8怎么办
    Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet Unknown Faceted Project Problem (Java Version Mismatch)
    分词器
    [数算]有一个工程甲、乙、丙单独做,分别要48天、72天、96天完成
    一点感想
    解析Excel文件 Apache POI框架使用
  • 原文地址:https://www.cnblogs.com/Youhei/p/6878321.html
Copyright © 2011-2022 走看看