Swift基礎--方法

Swift基礎--方法

swift中方法分爲實例方法和靜態方法,方法時於默寫特定類型相關聯的函數.類,結構體,枚舉均可以定義實例方法,也能夠定義靜態方法.swift

一,實例方法

實例方法: 給特定類型實例封裝的具體功能函數. 實例方法使用與類,結構體,枚舉bash

1.1,使用類中定義的實例方法

首先在勒種定義方法,而後經過建立類的實例,是哪一個"實例.方法名"便可調用,如:函數

class Player {
    func run() {
        print(" run.........")
    }
}

let player = Player()
player.run()
out:
run.........
複製代碼

1.2,使用結構體中定義的實例方法

首先在結構體中定義方法,要在定義的方法前添加關鍵字"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
複製代碼

1.3 使用枚舉中定義的實例方法

枚舉中定義的實例方法和結構體同樣,要在定義的方法前添加"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

2.1 使用類中定義的靜態方法

首先在勒種定義方法,經過在方法名前添加關鍵字"class" 或"static",而後使用"類名.方法名" 便可調用,若是方法中包含調用屬性,此屬性必須是靜態屬性(靜態屬性也是在普通屬性前面添加關鍵字 "static"),如:.net

class People {
    static var name: String = "kobe"
    static func getName() {
        print("name:\(name)")
    }
}

People.getName()
out:
name:kobe
複製代碼

2.2 使用街骨頭中定義的靜態方法

經過在方法名前添加關鍵字"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)複製代碼
相關文章
相關標籤/搜索