编辑这个页面须要登录或更高权限!

Swift 函数(func)

在本文中,您将通过示例学习Swift中有关函数,什么是函数,语法,类型的所有知识。

什么是函数?

函数是一组定义要执行的动作的语句。函数的主要用途是使代码可重复使用。

从技术上讲,您可以将函数视为机器。机器执行特定任务,要求输入,处理输入并返回输出。

函数类型

取决于函数是预定义的还是由程序员创建的;函数有两种类型:

  1. 库函数 - 在Swift Framework 中已经定义的函数。

  2. 用户定义的函数 - 程序员自己创建的函数。

库函数

库函数是已在Swift框架中定义的内置函数。提供这些函数是为了解决Swift中的常见问题,因此您不必自己解决它们。它们是简单的操作,例如打印,查找最小值和最大值等。

您可以通过调用库函数来直接使用它。如果你需要,你可以看到 Swift 框架内的所有函数。只要写 import Swift,按Cmd,点击它。您将导航到一个新页面。搜索所有以func关键字开头的语句。

示例1:库或内置函数

print("Hello, World!")

当您运行上述程序时,输出将是:

Hello, World!

在上面的程序中,我们调用了Swift框架中定义的内置函数 print 。该函数用于在控制台中打印输出。

我们能够调用print()函数,因为Swift框架会自动导入到我们的Playground中。否则,我们应该自己通过使用 import Swift 导入它。

用户定义的函数

Swift还允许您定义自己的函数。创建自己的函数有助于编写代码来解决问题或执行Swift Framework中不存在的功能。您还可以在将来重复使用您的函数来执行类似的任务。

同样,也可以根据参数和return语句对函数进行分类。请参考文章Swift函数参数类型和返回类型

定义函数

func function_name(args...) -> ReturnType {
    //语句
    return value
}

让我们简要说明函数的组成部分:

  • func  是创建函数必须编写的关键字

  • function_name  是函数的名称。您可以给它任何定义函数功能的名称。

  • args…  定义函数接受的输入。

  • ->  该运算符用于指示函数的返回类型。

  • ReturnType 定义可以从函数返回的值的类型。例如Int,String等等

  • return 关键字用于将程序的控制权转移到函数调用,并从函数返回值。
    即使您未指定 return 关键字,该函数也会在执行最后一条语句后自动返回。

  • value 表示从函数返回的实际数据。值类型必须与 ReturnType 匹配。

函数如何工作?

函数如何在Swift中工作?

在上图中,语句function_name(args)使用参数值args调用/调用该函数,然后离开代码的当前部分(即停止执行其下面的语句)并开始执行该函数内部的第一行。

  1. 该程序第一行代码,func function_name(Args...) ,并接受在函数调用function_name(args)期间传递的值args。

  2. 然后程序执行函数内部定义的 statementsInsideFunction 语句。

  3. 函数内部的语句按从上到下的顺序,逐个执行。

  4. 执行完最后一条语句后,程序离开函数,返回到它从Function_Name(Args)开始的地方。

  5. let val = 将函数返回的值存储为一个常量 val。 同样,您可以将变量存储为var val =。

  6. 之后,将执行 statementsOutsideFunction 语句。

示例2:如何在Swift中定义函数?

func greet(user:String) {
    print("Good Morning! \(user)")
}

上面显示的是一个函数定义,其中包含以下组成部分:

  1. 关键字 func 标记函数头的开始。

  2. greet 是用于在程序中唯一标识和调用函数的函数名称。

  3. (user:String)标记函数头的结尾并接受 String 类型的参数。请参考文章Swift函数的参数类型和返回类型,它们定义了带有参数的函数。

  4. 该函数由主体内的一条print语句组成,该语句在您调用函数之后执行。

调用函数

一旦创建了一个函数,就可以在程序中调用它来执行函数中声明的语句。要调用一个函数,你只需要写一个函数名后面跟着() ,然后把输入参数传递给它:

greet(user: "Isac")

示例3:在Swift中调用函数

func greet(user:String) {
    print("Good Morning! \(user)")
}

greet(user: "Isac")

当您运行上述程序时,输出将是:

Good Morning! Isac

在上面的代码中,调用自定义函数 greet(user: "Isac") 并传递字符串类型的值 Isact。之后,print执行函数内部的语句。

return 语句

return 关键字告诉程序退出函数并返回到进行函数调用的行。

您也可以使用 return 关键字传递值,其中 value 是变量或从函数返回的其他信息。

示例3:带有return关键字的函数

func greet(user:String)-> String {
    return "Good Morning! \(user)"
}

let greeting = greet(user: "Isac")
print("""
     您有一条新消息
     \(greeting)
     """)

当您运行上述程序时,输出将是:

您有一条新消息
Good Morning! Isac

在上面的代码中,调用自定义函数 greet(user: "Isac") 并传递字符串类型的值 Isact。return "Good Morning! \(user)" 语句返回String类型的值,并将程序转移到函数调用中。

let greeting = 存储从函数返回的值。 函数返回后,将执行函数调用下方的print语句。

函数使用注意事项

  • 指定反映函数用途的函数名称。

  • 一个函数只能完成一项任务。如果一个函数执行多项任务,请将其分解为多个函数。

  • 试着在一个函数中尽早地思考和组织语句,使代码可重用和模块化。