Swift 函数

在本教程中,我们将通过示例学习 Swift 函数和函数表达式。

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

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

  • 画圆的函数
  • 为圆着色的函数

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

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

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

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


Swift 函数声明

声明函数的语法为:

  1. func functionName(parameters)-> returnType {
  2. // function body
  3. }

这里,

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

让我们看一个实例,

  1. func greet() {
  2. print("Hello World!")
  3. }

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

此函数没有任何参数和返回类型。我们将在本教程后面了解 返回类型和参数


在 Swift 中调用函数

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

  1. func greet() {
  2. print("Hello World!")
  3. }

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

下面是我们如何在 Swift 中调用 greet() 函数。

  1. // call the function
  2. greet()

实例

  1. // declare a function
  2. func greet() {
  3. print("Hello World!")
  4. }
  5. // call the function
  6. greet()
  7. print("Outside function")

结果为:

  1. Hello World!
  2. Outside function

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

在这里,

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

函数参数

如前所述,函数也可以具有参数。参数是函数接受的值。例如,

  1. // function with two parameters
  2. func addNumbers(num1: Int, num2: Int) {
  3. var sum = num1 + num2
  4. print("Sum: ",sum)
  5. }
  6. // function with no parameter
  7. func addNumbers() {
  8. // code
  9. }

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

  1. // function call with two values
  2. addNumbers(num1: 3, num2: 4)
  3. // function call with no value
  4. addNumbers()

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

注意:要了解有关函数参数的更多信息,请访问 Swift 函数参数
实例
  1. // function that adds two numbers
  2. func addNumbers(num1: Int, num2: Int) {
  3. var sum = num1 + num2
  4. print("Sum: ", sum)
  5. }
  6. // calling function with two values
  7. addNumbers(num1: 3, num2: 4)

结果为:

  1. Sum: 7

在上面的程序中,我们创建了一个名为 addNumbers() 的函数,参数为 num1num2

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


Swift 函数返回类型

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

  1. func addNumbers() -> Int {
  2. ...
  3. return sum
  4. }

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

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

实例:函数返回值
  1. // function definition
  2. func findSquare (num: Int) -> Int {
  3. var result = num * num
  4. return result
  5. }
  6. // function call
  7. var square = findSquare(num: 3)
  8. print("Square:",square)

结果为:

  1. Square: 9

实例:两个数相加
  1. // function that adds two numbers
  2. func addNumbers(num1: Int, num2: Int) -> Int {
  3. var sum = num1 + num2
  4. return sum
  5. }
  6. // calling function with two values
  7. var result = addNumbers(num1: 3, num2: 4)
  8. print("Sum: ", result)

结果如下:

  1. Sum = 7

Swift 库函数

在 Swift 中,标准库函数是可以直接在我们的程序中使用的内置函数。例如,print() - 打印引号内的字符串sqrt() - 返回数字的平方根pow() - 返回数字的幂

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

例如,sqrt()pow() 是在基础框架中定义的。

实例:Swift 库函数
  1. import Foundation
  2. // sqrt computes the square root
  3. var squareRoot = sqrt(25)
  4. print("Square Root of 25 is",squareRoot)
  5. // pow() comptes the power
  6. var power = pow(2, 3)
  7. print("2 to the power 3 is",power)

结果如下:

  1. Square Root of 25 is 5.0
  2. 2 to the power 3 is 8

这里,注意这一句,

  1. import Foundation

由于 sqrt()pow() 是在基础库中定义的,因此我们需要将其包含在程序中。


使用函数的好处

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

  1. // function definition
  2. func getSquare(num: Int) -> Int{
  3. return num * num
  4. }
  5. for i in 1...3{
  6. // function call
  7. var result = getSquare(num: i)
  8. print("Square of \(i) =",result)
  9. }

结果为:

  1. Square of 1 = 1
  2. Square of 2 = 4
  3. Square of 3 = 9

在上面的程序中,我们创建了名为 getSquare() 的函数来计算数字的平方。这里,函数用于计算 13 之间的数字的平方。

因此,重复使用相同的方法。

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