Swift编程

swift函数的几种类型

2020-03-09  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读