- Swift 教程
- Swift - 首页
- Swift - 概述
- Swift - 环境
- Swift - 基本语法
- Swift - 变量
- Swift - 常量
- Swift - 字面量
- Swift - 注释
- Swift 运算符
- Swift - 运算符
- Swift - 算术运算符
- Swift - 比较运算符
- Swift - 逻辑运算符
- Swift - 赋值运算符
- Swift - 位运算符
- Swift - 其他运算符
- Swift 高级运算符
- Swift - 运算符重载
- Swift - 算术溢出运算符
- Swift - 恒等运算符
- Swift - 范围运算符
- Swift 数据类型
- Swift - 数据类型
- Swift - 整数
- Swift - 浮点数
- Swift - Double
- Swift - 布尔值
- Swift - 字符串
- Swift - 字符
- Swift - 类型别名
- Swift - 可选类型
- Swift - 元组
- Swift - 断言和前提条件
- Swift 控制流
- Swift - 决策
- Swift - if 语句
- Swift - if...else if...else 语句
- Swift - if-else 语句
- Swift - 嵌套 if 语句
- Swift - switch 语句
- Swift - 循环
- Swift - for in 循环
- Swift - while 循环
- Swift - repeat...while 循环
- Swift - continue 语句
- Swift - break 语句
- Swift - fall through 语句
- Swift 集合
- Swift - 数组
- Swift - 集合
- Swift - 字典
- Swift 函数
- Swift - 函数
- Swift - 嵌套函数
- Swift - 函数重载
- Swift - 递归
- Swift - 高阶函数
- Swift 闭包
- Swift - 闭包
- Swift - 转义和非转义闭包
- Swift - 自动闭包
- Swift 面向对象
- Swift - 枚举
- Swift - 结构体
- Swift - 类
- Swift - 属性
- Swift - 方法
- Swift - 下标
- Swift - 继承
- Swift - 重写
- Swift - 初始化
- Swift - 析构
- Swift 高级
- Swift - ARC 概述
- Swift - 可选链
- Swift - 错误处理
- Swift - 并发
- Swift - 类型转换
- Swift - 嵌套类型
- Swift - 扩展
- Swift - 协议
- Swift - 泛型
- Swift - 访问控制
- Swift - 函数与方法
- Swift - SwiftyJSON
- Swift - 单例类
- Swift 随机数
- Swift 不透明类型和装箱类型
- Swift 有用资源
- Swift - 在线编译
- Swift - 快速指南
- Swift - 有用资源
- Swift - 讨论
Swift - 函数与方法
在 Swift 中,函数和方法都是代码优化和封装的基本构建块。理解函数和方法之间的区别可能会令人困惑,但我们可能会认为它们都是一样的。事实并非如此。方法用于类、结构体和枚举中。
它们在该类型的实例上调用,并访问和修改实例的属性。而函数则独立定义或全局定义,无需创建类或结构体。或者我们可以说方法是一种函数,而函数不是方法。
Swift 函数
函数用于执行特定的操作,并通过其名称调用。在调用函数时,传递变量或常量作为参数非常简单。此外,我们还可以从任何类型的函数中返回值。一个独立于文件工作的函数也可以在文件外部定义。
语法
以下是函数的语法:
func functionName(parameters...) -> returnType { //Write statements here to perform actions }
示例
Swift 程序演示如何创建和调用函数。
// Function without return value func show(msg: String) { print("Welcome to, \(msg)!") } // Function call show(msg: "Tutorials Point") // Function with return value func sumOfNumbers(_ nums: [Int]) -> Int { var sum = 0 // Calculating the sum of the numbers present in the array for n in nums { sum += n } return sum } // Function call with return value let inputNumbers = sumOfNumbers([3, 5, 6, 7, 1]) print("Sum = \(inputNumbers)")
输出
它将产生以下输出:
Welcome to, Tutorials Point! Sum = 22
Swift 方法
方法是一种函数,可以在类、结构体和枚举中定义。使用方法,我们可以根据您的需求执行某些操作。根据我们的需要,我们可以定义多个方法来执行不同的任务。
要访问类或结构体中定义的方法,我们必须创建关联类型的实例。使用该对象,我们可以调用方法来执行任务。就像函数一样,我们也可以在调用方法时传递参数。始终记住,在不创建该类或结构体的对象的情况下,我们无法访问方法。
在 Swift 语言中,有两种类型的方法,如下所示:
实例方法 - 根据其名称,这些是特定于实例的方法,可以通过实例调用。如果我们尝试在没有该类或结构体的实例的情况下访问方法,编译器将给我们一个错误。此外,我们不能从另一个类的实例调用类的 (例如类 Student) 方法。
类型方法 - 在 Swift 中,我们可以使用静态或类等前缀关键字定义类型方法。无需创建类或结构体的实例即可调用类型方法。它们可以直接从类型名称调用。
语法
以下是方法的语法:
func methodName(parameters...) -> returnType { //Write statements here to perform actions }
示例
Swift 程序演示如何创建和调用方法。
// Defining a structure struct Student { // Properties let name: String let grade: Int // Instance method func displayInfo() { print("name: \(name)") print("grade: \(grade)") } // Type method static func dummyStudents() -> [Student] { return [Student(name: "Ray Sin", grade: 4), Student(name: "Cherry Blossom", grade: 2), Student(name: "Perry Scope", grade: 7)] } } // Creating instance of the structure let anne = Student(name: "Anne Teak", grade: 5) // Calling instance method from object anne anne.displayInfo() // Calling type method let students = Student.dummyStudents() print("number of students: ", students.count)
输出
它将产生以下输出:
name: Anne Teak grade: 5 number of students: 3
函数与方法之间的视觉识别
Swift 语言显示了如何表示函数和方法。可以看出,两者都表示如下:
函数的图标类似于ƒ。
方法的图标为M。
Swift 中方法和函数的区别
下表将显示 Swift 中方法和函数的主要区别:
函数 | 方法 |
---|---|
函数被定义为独立的。因此,我们可以在类外部定义函数。 | 它们与类或结构体本身相关联。在范围之外,您无法定义方法。 |
函数是 C/C++ 等结构化语言的独立属性。 | 方法在对象的范围内工作,类似于 C#、Java、Swift 等面向对象语言。 |
函数不会捕获任何引用变量或常量。 | 方法只能使用引用变量(或实例)调用。 |
虽然函数不属于类,但它们单独执行。 | 方法被定义为操纵该类或结构体的特定实例。 |
无需创建对象即可调用它们。 | 需要一个对象才能访问它们。 |
简单来说,并非每个函数都是方法。 | 而每个方法都是一个函数。 |