Swift 方法(method)與下標(subscript)— DAY10

工程師卡卡
May 30, 2021

--

實體方法(Instance method)

型別方法(type method),不用生成實體就可以呼叫。

下標(subscript)

實體方法

內建屬性 self

為實體隱藏屬性,實體方法中,當參數與屬性名相同的時候可以運用,如下:

參數:count

屬性:self.count

值型別修改

變異(mutating)這個方法,將關鍵字mutating放在方法的func之前就可以了,如果是常數,無法修改。修改後可以指派給self,作為值的改變。

//定義一個結構 Point
struct Point {
// 兩個變數屬性 可以代表一個二維圖上的一個點
var x = 0.0, y = 0.0

// 一個變異方法 會將兩個屬性各別加上一個值
mutating func moveByX(deltaX: Double, y deltaY: Double) {
x += deltaX
y += deltaY
}
}

// 生成一個結構的實體的變數 並給初始值
var somePoint = Point(x: 1.0, y: 1.0)

// 修改其內的屬性值
somePoint.moveByX(2.0, y: 3.0)

// 現在兩個屬性已經被改變了
// 印出:x: 3.0, y: 4.0
print("x: \(somePoint.x), y: \(somePoint.y)")

型別方法

定義在特定型別(類別、結構與列舉)上的方法,與實體方法一樣使用點語法(dot syntax)呼叫。

宣告型別方法時需要在func前加上關鍵字static,可以將static替換成class來讓子類別覆寫(override)父類別的類別。

下標

在陣列或字典名稱後面緊接著中括號[],括號內填入陣列的索引值(index)或是字典的鍵(key),即可存取或設置值。

// 宣告一個 [Int] 型別的陣列
var arr = [1,2,3,4,5,6,7]

// 印出其內第三個元素(請記得 陣列的索引值是從 0 開始算起)
print(arr[4])

// 修改第四個元素為 12
arr[3] = 12


// 宣告一個 [String:String] 型別的字典
var dict = ["name":"Kevin","city":"Taipei"]

// 印出鍵為 name 的值
print(dict["name"])

// 修改鍵為 city 的值為 New York
dict["city"] = "New York"

--

--

工程師卡卡
工程師卡卡

Written by 工程師卡卡

Frontend developer Swift baby level

No responses yet