
- 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 等面嚮物件語言。 |
函式不會捕獲任何引用變數或常量。 | 方法只能使用引用變數(或例項)呼叫。 |
雖然函式不屬於類,但它們單獨執行。 | 方法被定義為操縱該類或結構體的特定例項。 |
無需建立物件即可呼叫它們。 | 需要一個物件才能訪問它們。 |
簡單來說,並非每個函式都是方法。 | 而每個方法都是一個函式。 |