標籤:
<span style="font-size:24px;">struct David { var x = 0;//定義一個結構體,兩個欄位x,y var y = 0;//初始值 //定義結構體的建構函式 init(){ //定義一個空建構函式,真正的建構函式,調用時候不帶參數調用這裡 //建構函式是以init 開頭的,自動調用 // [[oc alloc]init]不是建構函式 println("in init"); } init(x:Int,y:Int){ self.x = x;//定義帶有2個參數的建構函式,帶雙參數的時候調用這裡 self.y = y; println("in init(x:y:)") } //結構體有建構函式,沒有解構函式 func getCenter()->Int{ return (x+y)/2; } //給現有的點x,y加位移量 //obj.addOffset(100,deltaY:) mutating func addOffset (deltaX:Int,deltaY:Int){ //結構體是拷貝的對象,函數內部不能修改變數 //需要修改,加關鍵字mutating, //mutating,可以修改建構函式內部變數 x += deltaX; y += deltaY; }};func testDavid(){ //定義一個結構體 //結構體的定義是 結構體的名字(參數名:參數值) var d = David();//調用建構函式init() var s = David(x: 100, y: 200);//調用建構函式init(x,y) println("s.x = \(s.x), s.y = \(s.y)") let c = s.getCenter();//調用解構函式getCenter println("c is \(c)"); s.addOffset(100, deltaY: 200);//因為解構函式沒有傳回值,所以不能賦值給變數 println("d is :\(s.x)");}testDavid();//測試函數調用</span>
swift的struct結構體類型介紹使用