iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0
Mobile Development

如何成為IOS初級工程師系列 第 9

Day-09 語法不是魔法但是好方法 - Methods

  • 分享至 

  • xImage
  •  

進入正題

今天會學到

  • 實體方法(Instance Methods)
  • 型別方法(Type Methods)

方法(Methods)

methods跟properties有異曲同工之妙,簡單來說methods是在特定型別(class、struct、enum)裡的函式(function)

實體方法(Instance Methods)

需要把特定型別(class、struct、enum)實例化才可以使用裡面的方法,前面有說過特定型別是藍圖,那要實際做出成品才有功能可以用,不然就是紙上談兵罷了。下面我們用官方的範例說明

class Counter {
    var count = 0        //這是儲存屬性
    func increment() {     //只要在class內的func都是方法(methods)
        count += 1
    }
    func increment(by amount: Int) {
        count += amount
    }
    func reset() {
        count = 0
    }
}

那我們剛剛已經建立好藍圖了,所以現在需要實例化才能使用實體方法

let counter = Counter()   //實例化,所以count會有預設值0
counter.increment()       // count的值變成1了
counter.increment(by: 5)  // count的值變成6了
counter.reset()           // count的值變回0了

型別方法(Type Methods)

型別方法跟型別屬性是一樣的概念,單來說我們使用static來宣告function,這樣不需要實例化就可以使用Type Methods。如果methods是建立在class裡面的話,可以把static改成class宣告,下面使用官方範例。

class SomeClass {
    class func someTypeMethod() {
        // 程式碼
    }
}

SomeClass.someTypeMethod()  //不用實例化就可以直接使用方法

今天教的東西跟昨天的屬性是相同概念的,可以一起看


上一篇
Day-08 展現特質的屬性 - Properties
下一篇
Day-10 要遵守的協議 - protocols
系列文
如何成為IOS初級工程師30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言