函数与结构

函数

Swift 使用一个统一的语法来表示简单的 C 语言风格的函数到复杂的 Objective-C 语言风格的方法。

函数定义:func

1
2
3
func runoob(site: String) -> String {
    return (site)
}

函数调用:

1
print(runoob(site: "www.runoob.com"))

函数参数:

  • 参数被包含在函数的括号之中,以逗号分隔。
  • 函数参数都有一个外部参数名(外部调用时指定)和一个局部参数名(内部使用时使用),比如:
1
2
3
4
5
6
func test(firstArg a: Int, secondArg b: Int) -> Int {
  var res = a
  print(b)
	return a;
}
test(firstArg:5, secondArg:3)
  • 使用 inout 关键字定义,使用 & 调用,可以传递引用参数。如果缺少 & 会报错类型不符,如果缺少 inout 会报错将 var 赋值给 let。例子:
1
2
3
4
5
6
func swapTwoInts(_ a: inout Int, _ b: inout Int) {
    let temporaryA = a
    a = b
    b = temporaryA
}
swapTwoInts(&x, &y)

返回元组:

1
2
3
4
5
6
7
func minMax(array: [Int]) -> (min: Int, max: Int) {
  // ...
}

if let bounds = minMax(array: [8, -6, 2, 109, 3, 71]) {
    print("最小值为 \(bounds.min),最大值为 \(bounds.max)")
}

函数类型:(SomeType) -> SomeType

闭包

Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的 匿名函数比较相似。