美文网首页Swift编程
swift函数的几种类型

swift函数的几种类型

作者: 孤城若渊 | 来源:发表于2020-03-09 22:33 被阅读0次

    在swift语言中,定义函数的一般可分为如下几种类型

    1.基本类型

    func 函数名称(参数名称: 参数类型) -> 返回值类型{ 
          函数具体操作
          由于初始设定了返回值的类型,其中应当包含 return操作 
    } 
    后续执行函数
    let a = 函数名称(参数名称: 值)
    

    需要注意与c语言不同,swift中函数的使用往往需要中往往需要重复参数名与参数值。

    2.无返回值类型

    func 函数名(参数名称: 参数类型) 
    { 具体操作 }
    

    这种情况一般不涉及数值的操作。
    3.多个参数的类型

    func 函数名(参数1: 类型1,  参数2: 类型2) -> 返回值的类型{ 
          具体操作 }
    

    4.多个返回值的类型

    func 函数名(参数名: 参数类型) ->(返回值名称1: 类型1,返回值2名称: 类型2){ 
        return(返回值形参1,返回值形参2) 
    }
    

    这里值得注意的是,这种情况下,该函数运行之后返回的实际上是一个字典,即(返回值名称1: 类型1,返回值2名称: 类型2)。这一点在苹果的官方文档中似乎没有明确指出。

    在下面编写了一段无意义的试验性代码可供参考

    import UIKit 
    func haha(kat: Int) ->(a: Int,b: Int){ 
        let aa = kat*2 
        let bb = kat*3 return(aa,bb) 
    } 
    let x=haha(kat: 3).a 
    let y=haha(kat: 3).b 
    let z=haha(kat: 3)
    

    最终x=6,y=9,而z的类型为一个字典

    示意图

    5.隐式返回值

    这种类型一般用于该函数作用为输出一段string。这一情况虽然声明了返回值的类型,但函数体内无需return操作,而可以实际返回字符串值。

    func greet(for person: String) ->String{ 
        "Hello, " + person + "!" 
    } 
    print(greet(for: "Mr.Green")) 
    // 结果即为 "Hello, Mr.Green!"
    

    函数在使用过程中,经常输入参数名称往往不是那么的方便,swift也提供了更为简洁的方法,即在声明函数时,在将要传递的函数名前加上一个“_"符号。

    func someFunc(_first: Int, second: Int){
        ...... 
    } someFunc(1,second: 2)
    

    此外,swift还提供了非常灵活的直接作用于输入参数的方法。这种情况无需返回操作,即可修改传递参数的值。

    func swapTwoInts(_ a: inout Int, _ b: inout Int) { 
    let temporaryA = a 
        a = b 
        b = temporaryA 
    } 
    
    var someInt = 3 
    var anotherInt = 107 
    swapTwoInts(&someInt, &anotherInt) 
    print("someInt is now \(someInt), and anotherInt is now \(anotherInt)") 
    //someInt is now 107, and anotherInt is now 3"
    

    注意,这里在函数的执行过程中涉及类似于取地址的操作。

    更多详细内容可以参考apple的官方文档
    https://docs.swift.org/swift-book/LanguageGuide/Functions.html

    部分代码来自apple

    相关文章

      网友评论

        本文标题:swift函数的几种类型

        本文链接:https://www.haomeiwen.com/subject/hzymdhtx.html