在 Swift 中,方法是與特定類型相關聯的函數。方法可以用于實例類型(實例方法)或類型本身(類型方法)。方法允許類型的實例執行特定的任務,也可以修改實例本身或實例的屬性。
實例方法(Instance Methods)
實例方法是屬于特定類、結構體或枚舉實例的函數。它們提供對實例屬性和實例方法的訪問權限,并允許實例執行特定的任務。實例方法在定義時使用 func
關鍵字,并且可以訪問實例的屬性和其他方法。
示例:
class Counter {var count = 0func increment() {count += 1}func reset() {count = 0}
}
let counter = Counter()
counter.increment()
print(counter.count) // 輸出:1
counter.reset()
print(counter.count) // 輸出:0
類型方法(Type Methods)
類型方法是與類型本身相關聯的方法,而不是與類型的實例相關聯。類型方法在定義時使用 static
關鍵字(對于類)或 class
關鍵字(對于子類的重寫方法)。類型方法可以訪問類型本身的屬性和方法,但不能訪問實例的屬性和方法。
示例:
struct Math {static func abs(_ number: Int) -> Int {return number >= 0 ? number : -number}
}
let absoluteValue = Math.abs(-10)
print(absoluteValue) // 輸出:10
在實例方法中修改值類型
在 Swift 中,結構體和枚舉是值類型,因此默認情況下,實例方法不能修改實例的屬性。但是,如果需要在特定方法中修改值類型的屬性,可以在方法前面加上 mutating
關鍵字。
示例:
struct Point {var x = 0.0, y = 0.0mutating func moveBy(x deltaX: Double, y deltaY: Double) {x += deltaXy += deltaY}
}
var point = Point(x: 1.0, y: 1.0)
point.moveBy(x: 2.0, y: 3.0)
print(point) // 輸出:Point(x: 3.0, y: 4.0)
Swift 中的方法是面向對象編程的重要組成部分,它們允許類型的實例執行特定的任務,并且可以修改實例本身或實例的屬性。實例方法用于操作實例的狀態和行為,而類型方法則用于對類型本身執行任務。在 Swift 中,方法是一種強大的工具,用于實現面向對象編程的特性。