<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ?法是與某些特定類型相關聯的函數。 類、結構體、枚舉都可以定義實例?法;實例?法為給定類型的實例封裝了具體的任務與功能。 類、結構體、枚舉也可以定義類型?法;類型?法與類型本?相關聯。類型?法與 Objective-C 中的類?法(class methods)相似 結構體和枚舉能夠定義?法是 Swift 與 C/Objective-C 的主要區別之? 1、實例方法: ~~~ import Foundation class Person { var age = 1; var name = "xiaoming"; //這就是實例方法,定義在所屬類型的前后大括號之間 //實例?法能夠隱式訪問它所屬類型的所有的其他實例?法和屬性 func printAge() { print("the \(self) age is \(self.age)") } func printNameAndAge(){ print("the \(self) name is \(self.name)") self.printAge() } } let p1 = Person() p1.printNameAndAge() p1.name = "dzl" p1.age = 12; p1.printNameAndAge() //the _5_swift之_方法.Person name is xiaoming //the _5_swift之_方法.Person age is 1 //the _5_swift之_方法.Person name is dzl //the _5_swift之_方法.Person age is 12 ~~~ 類Person定義了兩個屬性,兩個實例方法,其中實例方法printNameAndAge()調用實例方法printAge() (1)、方法的局部參數名稱和外部參數名稱 Swift 默認僅給?法的第?個參數名稱?個局部參數名稱;默認同時給第?個和后續的參數名稱局部參數名稱和外部參數名稱 ~~~ class Cat { var name = "xiaohua" var age = 1 //這里newName只是局部參數名稱,而newAge既是局部參數名稱又是外部參數名稱 func newNameAndAge(newName : String, newAge : Int) -> Void { self.name = newName self.age = newAge } //通過下劃線(_)取消第二個及后續參數的默認外部參數名稱 func useXiaHuaXian(newName : String, _ newAge : Int) { self.name = newName self.age = newAge } //自定義外部參數名稱 func setNameAndAge(subNewName newName : String, subNewAge newAge : Int) { self.name = newName self.age = newAge } } var cat1 = Cat() cat1.newNameAndAge("cat1", newAge: 2) cat1.setNameAndAge(subNewName: "cat2", subNewAge: 3) cat1.useXiaHuaXian("cat3", 4) ~~~ (2)、在實例方法中修改值類型 結構體和枚舉是值類型。?般情況下,值類型的屬性不能在它的實例?法中被修改。但是,如果你確實需要在某個具體的?法中修改結構體或者枚舉的屬性,你可以選擇 變異?法(mutating)? 這個?法,然后?法就可以從?法內部改變它的屬性;并且它做的任何改變在?法結束時還會保留在原始結構中。?法還可以給它隱含的 self? 屬性賦值?個全新的實例,這個新實例在?法結束后將替換原來的實例 ~~~ struct MyPoint { var x = 0.0 var y = 0.0 mutating func changePoint(newX newX : Double, newY : Double) { x += newX y += newY } //?法還可以給它隱含的 self 屬性賦值?個全新的實例,這個新實例在?法結束后將替換原來的實例 mutating func changeMyPoint(newX : Double, newY : Double) { self = MyPoint(x: x + newX, y: y + newY) } } var point1 = MyPoint(x: 2, y: 3) point1.changePoint(newX: 1, newY: 1); print("the point, x = \(point1.x) y = \(point1.y)") point1.changeMyPoint(2, newY: 2) print("the point, x = \(point1.x) y = \(point1.y)") //the point, x = 3.0 y = 4.0 //the point, x = 5.0 y = 6.0 ~~~ 2、類型方法(加關鍵字static) ~~~ enum EnumTypeFunc : Int{ case enum1 = 1 case enum2, enum3 static func getEnum2() -> EnumTypeFunc { return enum2 } } struct StructTypeFunc { static var name = "struct" static func getName() -> String { return name } } class ClassTypeFunc { static var name = "class" static func getName1() -> String { return name } //關鍵字class允許子類重寫父類方法 class func getName2() -> String { return name } } print(EnumTypeFunc.getEnum2()) print(StructTypeFunc.getName()) print(ClassTypeFunc.getName1()) print(ClassTypeFunc.getName2()) //enum2 //struct //class //class ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看