博客> swift函数定义跟调用总结
swift函数定义跟调用总结
1小时前 评论:0 阅读:311 不死D小强

swift提供了大量方便快捷的定义方式,今天在这里做一个总结。

1、无参数无返回值函数

func test1() {
    print("无参数无返回值函数")
}

调用:test1()

2、多个参数无返回值

func test2(param1:String,param2:Bool)  {
    print("多个参数参数无返回值函数")
}

调用:test2(param1: "aa", param2: true)

3、多个参数有返回值

func test3(param1:String,param2:Bool) -> String {
    return "多个参数参数有返回值函数";
}

注意:虽然又返回值但是调用的时候可忽略返回值 调用:print(test3(param1: "aa", param2: true))

4、具有多个返回值

func test4(a: Int, b:Int) -> (min: Int, max: Int) {
    if a < b xss=removed> (min: Int, max: Int) ? {
}

函数是否返回实际的元组值或nil

6、指定参数标签

func test6(p1 param1:String ,p2 param2:String) -> String {
    return param1 + param2;
}

调用:print(test6(p1: "a", p2: "b"))

7、省略参数标签

func test7(_ param1:String ,p2 param2:String) -> String {
    return param1 + param2;
}

调用: print(test7("a", p2: "b")) 对于标签我们可以这样理解,函数参数有两个名字,一个是给内部用的,一个外部调用使用的,内部的参数名字不能省略,外部的可以省略或者用“_”(对外部调用来讲相当于省略)来代替。

8、默认参数值

func test8(_ param1:String ,p2 param2:String = "c") -> String {
    return param1 + param2;
}

调用: print(test8("a")) print(test8("a", p2: "b")) 如果不放入第二个参数,函数就使用默认值c,如果给了新参数,函数会使用新给的参数。

9、不固定参数

func test9(_ numbers: Double...) -> Double {
    var total: Double = 0
    for number in numbers {
        total += number
    }
    return total / Double(numbers.count)
}

调用:test9(1, 2, 3, 4, 5) 函数可以具有至多一个可变参数。

10、进出参数

func test10(_ a: inout Int, _ b: inout Int) {
    let temporaryA = a
    a = b
    b = temporaryA
}

调用: var oneInt = 7 var anotherInt = 14 test10(&oneInt, &anotherInt) print("oneInt is now (oneInt), and anotherInt is now (anotherInt)") 函数修改参数的值,并且在函数调用结束后这些更改仍然存在.可以通过将inout关键字放在参数类型之前来编写输入输出参数。输入输出参数不能具有默认值,并且可变参数不能标记为inout。不能修改常量和文字。

11、函数类型作为参数类型

func test11(_ mathFunction: (String, String) -> String, _ a: String, _ b: String) {
    print("Result: \(mathFunction(a,b))")
}

调用:test11(test7, "c", "d") //结果是:cd

12、函数类型作为返回类型

func test12(input: Int) -> (String,String) -> String {
    return input > 3 ? test5 : test7
}

调用: print(test12(input: 3)("a","b")) 注意调用的时候需要传两个函数的参数,一个是外部test12参数,还有一个是返回函数的参数

13、函数的嵌套:函数体内可以再定义函数

func test13(a: Int) -> (Int) -> Int{
    func test(b: Int) -> Int{
        return a + b
    }
    return test
}

调用:print(test13(a: 4)(5)) // Returns 9

收藏
0
sina weixin mail 回到顶部