Swift物件導向基礎(中)——Swift中的方法

來源:互聯網
上載者:User

標籤:

學習來自《極客學院》

1、定義方法需要在類型(枚舉,結構體,類)裡定義,不能獨立定義,獨立定義的是函數

2、方法要麼屬於該類型本身,要麼是該類型的一個執行個體

3、不能獨立執行方法,執行方法必須使用類型或執行個體作為調用者

注意:枚舉、結構體中方法使用static修飾,類中用class修飾,都屬於類型方法,否則的話屬於執行個體方法

 

 1 import Foundation 2  3 class SomeClass{ 4     func test(){ 5         println("====test 方法 ======") 6     } 7     class func bar(#msg:String){ 8         println("====bar 方法 ======,傳入的參數為:\(msg)") 9     }10 }11 //建立執行個體12 var sc = SomeClass()13 //將sc的test方法分離成函數,前面類型用()->()表示函數類型,後面的取方法不能帶上()14 var f1:()->() = sc.test//如果帶上括弧就是調用執行個體的方法15 //將sc的bar方法分離成函數16 var f2:(String)->Void = SomeClass.bar17 18 //然後使用f1()就相當於調用的就是sc.test()19 f1()20 //然後使用f2()就相當於調用的就是SomeClass.bar(msg:)21 f2("hello")22 23 24 //************方法的外部形參名*************//25 class Person{26     var name:String27     init(name:String){28         self.name = name29     }30     func eat(food:String, _ drink:String ,cigarette:String){31         println("\(self.name)吃著\(food)喝著\(drink)抽著\(cigarette)")32     }33 }34 var p = Person(name: "Tom")35 p.eat("烤鴨", "啤酒", cigarette: "雪茄")36 /*Swift預設為除第一個參數外部添加了外部參數名,與局部參數名一樣,如果不需要的話,則用_底線的方式去掉,添加了外部參數名,不是添加了#號*/37 38 /************實值型別的可變方法*************/39 struct JKRect {40     var x:Int41     var y:Int42     var width:Int43     var height:Int44     mutating func moveByX(x:Int,y:Int){45         self.x += x46         self.y += y47     }48 }49 var rect = JKRect(x: 20, y: 12, width: 200, height: 300)50 rect.moveByX(100, y: 90)51 println("矩形的左上方的x座標為:\(rect.x),y座標為\(rect.y)")52 /*注意:常量類型的結構體,枚舉時不可變的*/

運行結果是:

Swift物件導向基礎(中)——Swift中的方法

相關文章

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.