跳到主要内容

Swift中的函数

提示
  1. 函数定义和分类:Swift 中的函数是特定任务的代码块,分为用户定义函数和标准库函数。
  2. 声明和调用函数:函数通过 func 关键字声明,包含名称、参数和返回类型,通过其名称调用。
  3. 参数和返回类型:函数可以接受参数并返回结果,参数定义了输入类型,而返回类型指明了输出类型。

函数是执行特定任务的代码块。

假设我们需要创建一个程序来绘制一个圆并给它上色。在这种情况下,我们可以创建两个函数:

  1. 一个用来绘制圆的函数
  2. 一个用来给圆上色的函数

因此,函数帮助我们将程序分解为更小的部分,使我们的代码可重用且易于理解。

在 Swift 中,有两种类型的函数:

  • 用户定义的函数 - 我们可以根据自己的需求创建自己的函数。
  • 标准库函数 - 这些是 Swift 中内置的、可供使用的函数。

让我们首先了解用户定义的函数。

Swift 函数声明

声明函数的语法是:

func 函数名(参数)-> 返回类型 {
// 函数体
}

这里,

  • func - 用于声明函数的关键字
  • 函数名 - 给函数的任何名称
  • 参数 - 传递给函数的任何值
  • 返回类型 - 指定函数返回的值的类型

让我们看一个例子,

func greet() {
print("Hello World!")
}

在这里,我们创建了一个名为 greet() 的函数。它简单地打印文本 Hello World!

这个函数没有任何参数和返回类型。我们将在本教程后面学习关于返回类型和参数的内容。

在 Swift 中调用函数

在上面的例子中,我们声明了一个名为 greet() 的函数。

func greet() {
print("Hello World!")
}

现在,要使用这个函数,我们需要调用它。

以下是我们如何在 Swift 中调用 greet() 函数的方法。

// 调用函数
greet()

示例:Swift 函数

// 声明一个函数
func greet() {
print("Hello World!")
}

// 调用函数
greet()

print("Outside function")

输出

Hello World!
Outside function

在上面的示例中,我们创建了一个名为 greet() 的函数。以下是程序的工作方式:

Swift 函数

这里,

  1. 当函数被调用时,程序的控制权转移到函数定义。
  2. 函数内的所有代码被执行。
  3. 程序的控制权跳转到函数调用后的下一个语句。

函数参数

正如之前提到的,函数也可以有参数。参数是函数接受的一个值。例如,

// 带有两个参数的函数
func addNumbers(num1: Int, num2: Int) {
var sum = num1 + num2
print("Sum: ", sum)
}

// 没有参数的函数
func addNumbers() {
// 代码
}

如果我们创建一个带参数的函数,在调用它们时需要传递相应的值。例如,

// 使用两个值调用函数
addNumbers(num1: 3, num2: 4)

// 使用无值调用函数
addNumbers()

这里,num1: 3, num2: 4 指定了参数 num1num2 将分别获取值 34

注意:要了解更多关于函数参数的信息,请访问 Swift 函数参数

示例:函数参数

// 添加两个数字的函数
func addNumbers(num1: Int, num2: Int) {
var sum = num1 + num2
print("Sum: ", sum)
}

// 使用两个值调用函数
addNumbers(num1: 3, num2: 4)

输出

Sum: 7

在上述程序中,我们创建了一个名为 addNumbers() 的函数,它带有参数:num1num2

函数参数

注意:函数参数的数据类型应始终与函数调用期间传递的数据相匹配。这里,num1num2 的数据类型是 Int,所以我们在函数调用期间传递了整数值 34

Swift 函数返回类型

Swift 函数可能会或可能不会返回值。如果我们希望函数返回一些值,我们可以使用 return 语句。例如,

func addNumbers() -> Int {
...
return sum
}

这里,我们返回变量 sum。函数定义中的 -> Int 指定了函数的返回类型是整数。

如果函数返回任何值,则函数定义中应指定值的返回类型(-> returnType)。否则,它将产生错误。

示例:函数返回类型

// 函数定义
func findSquare (num: Int) -> Int {
var result = num * num
return result
}

// 函数调用
var square = findSquare(num: 3)

print("Square:", square)

输出

Square: 9

在上述示例中,我们创建了一个名为 findSquare() 的函数。该函数接受一个数字并返回该数字的平方。

带有返回值的函数

示例:添加两个数字

// 添加两个数字的函数
func addNumbers(num1: Int, num2: Int) -> Int {
var sum = num1 + num2
return sum
}

// 使用两个值调用函数
var result = addNumbers(num1: 3, num2: 4)

print("Sum: ", result)

输出

Sum = 7

Swift 标准库函数

在 Swift 中,标准库函数是内置的函数,可以直接在程序中使用。例如,

  • print() - 打印引号内的字符串
  • sqrt() - 返回一个数字的平方根
  • pow() - 返回一个数字的幂

这些库函数定义在框架内部。要使用它们,我们必须在程序中包含这个框架。

例如,sqrt()pow() 定义在 Foundation 框架内。

示例:Swift 标准库函数

import Foundation

// sqrt 计算平方根
var squareRoot = sqrt(25)

print("25 的平方根是", squareRoot)

// pow() 计算幂
var power = pow(2, 3)

print("2 的 3 次幂是", power)

输出

25 的平方根是 5.0
23 次幂是 8

在上述示例中,我们使用了

  • sqrt(25) - 计算 25 的平方根
  • pow(2, 3) - 计算一个数字的幂,即 2的3次幂

这里,请注意这个语句,

import Foundation

由于 sqrt()pow() 定义在 Foundation 库中,我们需要在程序中包含它。

使用函数的好处

1. 代码可重用 - 我们可以在程序中多次使用同一个函数,这使我们的代码具有可重用性。例如,

// 函数定义
func getSquare(num: Int) -> Int{
return num * num
}

for i in 1...3{

// 函数调用
var result = getSquare(num: i)
print("\(i) 的平方 =", result)
}

输出

1 的平方 = 1
2 的平方 = 4
3 的平方 = 9

在上述程序中,我们创建了名为 getSquare() 的函数来计算一个数字的平方。这里,该函数用于计算从 13 的数字的平方。

因此,同一个方法反复使用。

2. 代码可读性 - 函数帮助我们将代码分解成块,使我们的程序可读并易于理解。