函数是执行特定任务的代码块。
假设我们需要编写一个程序来创建一个圆并为其着色。在这种情况下,我们可以创建两个函数:
- 一个用于绘制圆的函数
- 一个用于为圆着色的函数
因此,函数有助于我们将程序分解为更小的块,使我们的代码可重用且易于理解。
在 Swift 中,有两种类型的函数:
- 用户自定义函数 - 我们可以根据自己的需求创建自己的函数。
- 标准库函数 - 这些是 Swift 中内置的函数,可供使用。
让我们首先了解用户自定义函数。
Swift 函数声明
声明函数的语法是:
func functionName(parameters)-> returnType {
// function body
}
这里,
- func - 用于声明函数的关键字
- functionName - 给函数的任何名称
- parameters - 传递给函数的任何值
- returnType - 指定函数返回的值的类型
让我们看一个例子,
func greet() {
print("Hello World!")
}
在这里,我们创建了一个名为 greet()
的函数。它只是打印文本 Hello World!
。
此函数没有任何参数和返回值。我们将在本教程稍后学习返回值和参数。
在 Swift 中调用函数
在上面的示例中,我们声明了一个名为 greet()
的函数。
func greet() {
print("Hello World!")
}
现在,要使用此函数,我们需要调用它。
以下是如何在 Swift 中调用 greet()
函数:
// call the function
greet()
示例:Swift 函数
// declare a function
func greet() {
print("Hello World!")
}
// call the function
greet()
print("Outside function")
输出
Hello World! Outside function
在上面的示例中,我们创建了一个名为 greet()
的函数。程序的运行方式如下:

这里,
- 当调用函数时,程序的控制权将转到函数定义。
- 函数内的所有代码都将被执行。
- 程序的控制权将跳转到函数调用之后的下一条语句。
函数参数
如前所述,函数也可以具有参数。参数是函数接受的值。例如:
// function with two parameters
func addNumbers(num1: Int, num2: Int) {
var sum = num1 + num2
print("Sum: ",sum)
}
// function with no parameter
func addNumbers() {
// code
}
如果我们创建一个带有参数的函数,则在调用它们时需要传递相应的值。例如:
// function call with two values
addNumbers(num1: 3, num2: 4)
// function call with no value
addNumbers()
这里,num1: 3, num2: 4 指定参数 num1 和 num2 将分别获得值 **3** 和 **4**。
注意:要了解有关函数参数的更多信息,请访问 Swift 函数参数。
示例:函数参数
// function that adds two numbers
func addNumbers(num1: Int, num2: Int) {
var sum = num1 + num2
print("Sum: ", sum)
}
// calling function with two values
addNumbers(num1: 3, num2: 4)
输出
Sum: 7
在上面的程序中,我们创建了一个名为 addNumbers()
的函数,它带有参数:num1 和 num2。

注意:函数参数的数据类型应始终与函数调用期间传递的数据匹配。这里,num1
和 num2
的数据类型是 Int
,因此我们在函数调用期间传递了整数值 **3** 和 **4**。
Swift 函数返回值
Swift 函数可以返回值,也可以不返回值。如果我们希望函数返回值,我们可以使用 **return 语句**。例如:
func addNumbers() -> Int {
...
return sum
}
在这里,我们返回变量 sum。函数定义中的 -> Int
指定函数的返回类型是整数。
如果函数返回任何值,则应在函数定义中指定该值的返回类型(-> returnType)。否则,它将生成错误。
示例:函数返回值
// function definition
func findSquare (num: Int) -> Int {
var result = num * num
return result
}
// function call
var square = findSquare(num: 3)
print("Square:",square)
输出
Square: 9
在上面的示例中,我们创建了一个名为 findSquare()
的函数。该函数接受一个数字并返回该数字的平方。

示例:两数相加
// function that adds two numbers
func addNumbers(num1: Int, num2: Int) -> Int {
var sum = num1 + num2
return sum
}
// calling function with two values
var result = addNumbers(num1: 3, num2: 4)
print("Sum: ", result)
输出
Sum = 7
Swift 库函数
在 Swift 中,标准库函数是可以在我们的程序中直接使用的内置函数。例如:
print()
- 打印引号内的字符串sqrt()
- 返回数字的平方根pow()
- 返回数字的幂
这些库函数定义在框架中。而且,要使用它们,我们必须将框架包含在我们的程序中。
例如,sqrt()
和 pow()
定义在 Foundation
框架中。
示例:Swift 库函数
import Foundation
// sqrt computes the square root
var squareRoot = sqrt(25)
print("Square Root of 25 is",squareRoot)
// pow() comptes the power
var power = pow(2, 3)
print("2 to the power 3 is",power)
输出
Square Root of 25 is 5.0 2 to the power 3 is 8
在上面的示例中,我们使用了
sqrt(25)
- 计算 **25** 的平方根pow(2, 3)
- 计算数字的幂,即 **23**
这里,请注意语句:
import Foundation
由于 sqrt()
和 pow()
定义在 Foundation
库中,因此我们需要将其包含在我们的程序中。
使用函数的好处
1. 代码重用 - 我们可以在程序中多次使用同一个函数,这使得我们的代码可重用。例如:
// function definition
func getSquare(num: Int) -> Int{
return num * num
}
for i in 1...3{
// function call
var result = getSquare(num: i)
print("Square of \(i) =",result)
}
输出
Square of 1 = 1 Square of 2 = 4 Square of 3 = 9
在上面的程序中,我们创建了一个名为 getSquare()
的函数来计算数字的平方。这里,该函数用于计算从 **1** 到 **3** 的数字的平方。
因此,相同的方法被反复使用。
2. 代码可读性 - 函数有助于我们将代码分解为块,使我们的程序可读且易于理解。