swift中方法分爲實例方法和靜態方法,方法時於默寫特定類型相關聯的函數.類,結構體,枚舉均可以定義實例方法,也能夠定義靜態方法.swift
實例方法: 給特定類型實例封裝的具體功能函數. 實例方法使用與類,結構體,枚舉bash
首先在勒種定義方法,而後經過建立類的實例,是哪一個"實例.方法名"便可調用,如:函數
class Player {
func run() {
print(" run.........")
}
}
let player = Player()
player.run()
out:
run.........
複製代碼
首先在結構體中定義方法,要在定義的方法前添加關鍵字"mutating"來聲明這個方法是"變異方法",若是在此方法中還要釣友結構體中的屬性,則必須在調用屬性前添加"self."來證實屬性來源於此結構體.而後經過建立類的實例,使用"實例.方法名"進行調用,如:網站
struct Point {
var x:CGFloat = 0, y: CGFloat = 0
mutating func safeZone(x: CGFloat, y: CGFloat) {
self.x = x
self.y = y
print("x:\(x), y:\(y)")
}
}
var point = Point()
point.safeZone(x: 100, y: 100)
out:
x:100.0, y:100.0
複製代碼
枚舉中定義的實例方法和結構體同樣,要在定義的方法前添加"mutating"關鍵字來聲明這個方法時"變異方法",若是在此方法中還要調用枚舉中的匹配枚舉值,則必須使用"self"來證實匹配枚舉值來源於此枚舉,而後經過建立枚舉的實例來調用方法,如:ui
enum Duration {
case east,south,west,north
mutating func getDuration() {
print("duration:\(self)")
switch self {
case .east:
self = .west
case .south:
self = .north
case .west:
self = .east
case .north:
self = .south
}
print("對立的方向:\(self)")
}
}
var duration = Duration.east
duration.getDuration()
out:
對立的方向:west
複製代碼
靜態方法: 不用建立特定類型的實例就能調用的具體功能函數 靜態方法適用於類,結構體spa
首先在勒種定義方法,經過在方法名前添加關鍵字"class" 或"static",而後使用"類名.方法名" 便可調用,若是方法中包含調用屬性,此屬性必須是靜態屬性(靜態屬性也是在普通屬性前面添加關鍵字 "static"),如:.net
class People {
static var name: String = "kobe"
static func getName() {
print("name:\(name)")
}
}
People.getName()
out:
name:kobe
複製代碼
經過在方法名前添加關鍵字"static",而後使用"結構體.方法名"便可調用,若是方法中包含調用屬性,那麼此屬性必須是靜態屬性(靜態屬性也是在普通屬性前面添加關鍵字 "static"),如:code
struct Z {
static var z: CGFloat = 0
static func getZ() {
print("z:\(z)")
}
}
Z.getZ()
out:
z:0
## hi 各位大佬,若是您喜歡個人文章,能夠在如下平臺關注我
[我的網站](https://shunyangsky.com)
微博:[順揚sky](https://weibo.com/2445151355/profile?topnav=1&wvr=6&is_all=1)
簡書:[順揚sky](https://www.jianshu.com/u/163fccb10ca5)
掘金:[順揚sky](https://juejin.im/user/59a67546518825241e223768)
[CSDN博客](https://me.csdn.net/u011137073)複製代碼