iOS開發Swift篇—(十)方法

來源:互聯網
上載者:User

標籤:

一、簡單說明

跟其他物件導向語言一樣,Swift中的方法可以分為2大類:

(1)執行個體方法(Instance Methods)

  在OC中,執行個體方法以減號(-)開頭

(2)類型方法(Type Methods)

  在OC中,類型方法以加號(+)開頭

 

二、執行個體方法

1.什麼是執行個體方法?

執行個體方法:就是只能用對象執行個體調用的方法,也可以稱為“對象方法”

執行個體方法的文法跟函數基本一樣

2.程式碼範例:

1 class Dog {2     func run() {3         println("Dog--->run")4     }5 }6 var d = Dog()7 d.run()

說明:

第2行定義了一個run方法

第7行調用run方法:調用方法也跟調用函數很像,格式是“對象名.方法名(參數)”

 

三、方法的參數

(1)方法和函數的參數有點區別,預設情況下

方法的第1個參數名僅僅是局部參數名

方法的其他參數名(除第1個參數名以外)既是局部參數名,又是外部參數名

1 class Calculator {2     func sum(num1: Int, num2: Int) -> Int {3         return num1 + num24     }5 }6 var c = Calculator()7 c.sum(10, num2: 20)

說明:

num1僅僅是局部參數名,num2既是局部參數名,又是外部參數名

相當於func sum(num1: Int, #num2: Int) -> Int

(2)可以在參數名前面加個底線 _,去掉預設的外部參數名

1 class Calculator {2     func sum(num1: Int, _ num2: Int) -> Int {3         return num1 + num24     }5 }6 var c = Calculator()7 c.sum(10, 20)

說明:num1、num2都僅僅是局部參數名,不是外部參數名

(3)也可以給第1個參數增加外部參數名

1 class Calculator {2     func sum(#num1: Int, num2: Int) -> Int {3         return num1 + num24     }5 }6 var c = Calculator()7 c.sum(num1: 10, num2: 20)

說明:num1、num2既是局部參數名,又是外部參數名

 

四、類型方法

1.什麼是類型方法?

  被關鍵字class修飾的方法,也可以稱為“類方法”

1 class Calculator {2     class func sum(num1: Int, num2: Int) -> Int {3         return num1 + num24     }5 }6 Calculator.sum(10, num2: 20)

說明:

第2行定義了一個類型方法

類型方法的特點:直接用類調用類型方法,不能用對象調用類型方法

第6行調用類型方法,格式是“類名.方法名(參數)”

注意:類型方法和執行個體方法的方法名可以一樣

 1 class Calculator { 2     class func sum(num1: Int, num2: Int) -> Int { 3         return num1 + num2 4     } 5     func sum(num1: Int, num2: Int) -> Int { 6         return num1 + num2 7     } 8 } 9 Calculator.sum(10, num2: 20)10 var c = Calculator()11 c.sum(10, num2: 20)

說明:

第2行定義的類型方法和第5行定義的執行個體方法:方法名一樣

第9行使用類調用類型方法

第11行使用對象調用執行個體方法

 

五、self

1.簡單說明

在每個方法內部,都有個隱含的屬性self,它的作用跟Objective-C中self的用法基本一致

self代表的是什嗎?誰調用這個方法,self就代表誰

(1)在執行個體方法中:self代表調用方法的某個對象

(2)在類型方法中:self代表調用方法的某個類

2.程式碼範例

 1 class Person { 2     class func run() { 3         println("class func run") 4     } 5     func run() { 6         println("func run") 7     } 8     class func test() { 9         self.run();10     }11     func test() {12         self.run();13     }14 }15 var p = Person()16 p.test()17 Person.test()

程式的輸出結果是:

func run

class func run

iOS開發Swift篇—(十)方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.