• Swift4.0复习函数


    1.函数的定义与调用:

    一个函数定义的基本语法如以下代码所示:
    func function_name (param1: Int, param2: Float, param3: Double) -> return_type {
        // function-body
        /* ... */
    }
    

    2.函数的实参标签:

    3.默认形参值:

    4.不定个数的形参:

    /// 这里定义了一个带有不定参数个数的函数foo
    /// 这里不定个数的形参的类型为Int
    func foo(a: Int, b: Int...) {
        var sum = a
         
        // 判定传递过来的实参个数是否大于0
        if b.count > 0 {
            for i in b {
                sum += i
            }
        }
         
        print("sum = (sum)")
    }
     
    // 不传任何不定个数形参所对应的实参
    foo(a: 0)
     
    // 传了1个不定个数形参所对应的实参
    foo(a: 0, b: 1)
     
    // 传了3个不定个数形参所对应的实参
    foo(a: 0, b: 1, 2, 3)

    5.输入输出形参:

    “在调用函数时,我们在表示实参的表达式之前加上 & 单目前缀操作符,表示该实参将会在函数返回后被所对应的形参进行赋值。 单目前缀操作符 & 的操作数必须是一个变量,而不能是一个常量。”

    摘录来自: “大话Swift 4.0”。 iBooks.

    /// 这里定义了一个函数foo,
    /// 其第二个形参b为输入输出形参
    func foo(a: Int, b: inout Int) {
        // 我们可以对输入输出形参b进行修改
        // 但这里不能对形参a进行修改
        b += a
    }
    var x = 100
    // 当foo函数返回之后,
    // 我们可以看到实参x的值也被修改了
    foo(a: 10, b: &x)
    // 这里输出:x = 110
    print("x = (x)")

    6.函数重载:

    “如果在同一作用域及名字空间中出现一组相同名字的函数,这些函数具有不同的形参类型或形参个数,或是带有不同的返回类型,那么称这组函数为重载函数(overloaded functions)。”

    摘录来自: “大话Swift 4.0”。 iBooks.

    7.函数类型与函数签名:

    // 这里foo的类型为() -> Void
    func foo() {
        print("foo void")
    }
     
    // 这里foo的类型为(Int) -> Void
    func foo(_ a: Int) {
        print("foo Int")
    }
    /// 函数foo的签名为:foo
    func foo() {
        print("foo")
    }
     
    /// 函数boo的签名为:boo(_:)
    func boo(_: Void) {
        print("boo")
    }

    8.嵌套函数定义:

    9.统一的函数引用体系:

  • 相关阅读:
    GitHub Actions 支持 "skip ci" 了
    自定义 ocelot 中间件输出自定义错误信息
    小心 Enum Parse 中的坑
    C# 实现一个基于值相等性比较的字典
    浅析 record 使用场景
    WARNING: IPv4 forwarding is disabled. Networking will not work.
    postgresql数据类型
    Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
    重放攻击及防御
    开放 HTTP API 接口签名验证!
  • 原文地址:https://www.cnblogs.com/pengsi/p/8489278.html
Copyright © 2020-2023  润新知