📜  在 swift 中声明函数(1)

📅  最后修改于: 2023-12-03 15:23:19.900000             🧑  作者: Mango

在 Swift 中声明函数

在 Swift 中,函数是用来执行特定任务的独立代码段。以下是在 Swift 中声明函数的示例:

func functionName(argumentLabel parameterName: ParameterType) -> ReturnType {
  // 函数体
  return returnValue
}
函数库

Swift包含许多预定义的函数库,可以使用内置函数库快速编写功能强大的应用程序。

例如,标准库提供了 print() 函数,用于在控制台上打印消息:

print("Hello, world!")
参数和返回类型

在 Swift 中,函数可以有零个或多个输入参数。每个函数参数都有一个标签和一个名称。

例如,以下函数使用两个参数,并返回它们的和:

func sum(firstNumber: Int, secondNumber: Int) -> Int {
  let result = firstNumber + secondNumber
  return result
}

let result = sum(firstNumber: 5, secondNumber: 4)
print(result) // 输出:9
参数标签

Swift 允许在函数声明中为每个参数指定两个标签,分别是参数标签和参数名称。

参数标签用于在调用函数时标识参数,而参数名称用于在函数体内引用参数。

例如,以下函数使用 of 参数标签和 numbers 参数名称:

func average(of numbers: [Double]) -> Double {
  let sum = numbers.reduce(0, +)
  let average = sum / Double(numbers.count)
  return average
}

let numbers = [1.0, 2.0, 3.0, 4.0, 5.0]
let avg = average(of: numbers)
print(avg) // 输出:3.0
可选参数

在 Swift 中,可以将参数标记为可选参数(optional),这意味着该参数可以为空值。

例如,以下函数将其参数标记为可选参数:

func getDescription(of name: String?) -> String {
  guard let name = name else {
    return "名字不明"
  }
  return "你好,\(name)!"
}

let desc1 = getDescription(of: "小明")
let desc2 = getDescription(of: nil)
print(desc1) // 输出:你好,小明!
print(desc2) // 输出:名字不明
可变参数

在 Swift 中,您可以使用可变参数传递任意数量的参数。要定义可变参数,请在参数类型后添加省略号(...)。

例如,以下函数使用可变参数来计算数字列表的平均值:

func average(numbers: Double...) -> Double {
  let sum = numbers.reduce(0, +)
  let average = sum / Double(numbers.count)
  return average
}

let avg1 = average(numbers: 1.0, 2.0, 3.0, 4.0, 5.0)
let avg2 = average(numbers: 6.0, 7.0, 8.0)
print(avg1) // 输出:3.0
print(avg2) // 输出:7.0
简写参数标签

在 Swift 中,您可以使用 _ 简写语法来省略参数标签。

例如,以下函数使用 _ 简写语法来省略第一个参数标签:

func sum(_ firstNumber: Int, and secondNumber: Int) -> Int {
  let result = firstNumber + secondNumber
  return result
}

let result = sum(5, and: 4)
print(result) // 输出:9
隐式返回值

在 Swift 中,您可以使用隐式返回值来返回函数表达式的结果。要使用隐式返回值,请省略 return 关键字并将表达式写在函数体中。

例如,以下函数使用隐式返回值:

func double(number: Int) -> Int {
  number * 2
}

let result = double(number: 4)
print(result) // 输出:8