iOS開發Swift篇—(十)方法函數
1、簡單說明spa
跟其餘面嚮對象語言同樣,Swift中的方法能夠分爲2大類:code
(1)實例方法(Instance Methods)對象
在OC中,實例方法以減號(-)開頭blog
(2)類型方法(Type Methods)開發
在OC中,類型方法以加號(+)開頭class
2、實例方法test
1.什麼是實例方法?iOS開發
實例方法:就是隻能用對象實例調用的方法,也能夠稱爲「對象方法」語法
實例方法的語法跟函數基本同樣
2.代碼示例:
1 class Dog { 2 func run() { 3 println("Dog--->run") 4 } 5 } 6 var d = Dog() 7 d.run()
說明:
第2行定義了一個run方法
第7行調用run方法:調用方法也跟調用函數很像,格式是「對象名.方法名(參數)」
3、方法的參數
(1)方法和函數的參數有點區別,默認狀況下
方法的第1個參數名僅僅是局部參數名
方法的其餘參數名(除第1個參數名之外)既是局部參數名,又是外部參數名
1 class Calculator { 2 func sum(num1: Int, num2: Int) -> Int { 3 return num1 + num2 4 } 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 + num2 4 } 5 } 6 var c = Calculator() 7 c.sum(10, 20)
說明:num一、num2都僅僅是局部參數名,不是外部參數名
(3)也能夠給第1個參數增長外部參數名
1 class Calculator { 2 func sum(#num1: Int, num2: Int) -> Int { 3 return num1 + num2 4 } 5 } 6 var c = Calculator() 7 c.sum(num1: 10, num2: 20)
說明:num一、num2既是局部參數名,又是外部參數名
4、類型方法
1.什麼是類型方法?
被關鍵字class修飾的方法,也能夠稱爲「類方法」
1 class Calculator { 2 class func sum(num1: Int, num2: Int) -> Int { 3 return num1 + num2 4 } 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行使用對象調用實例方法
5、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