Swift枚舉&結構體&類

enum Methodc {
    case  Add,Sub,Mul,Div
}
//// Swift枚舉 不像OC 中有默認值0  不過可以指定
enum Method2:Int {
    case Add2 = 5,Sub,Mul,Div
}
var m:Methodc = .Add

var m2:Method2 = .Add2
///rawValue代表將枚舉值轉換爲原始值
print(m2.rawValue)
//print(m)

struct Rect {
    var width :Double = 0.0
    var height:Double = 0.0
}

var r = Rect()

r.width = 122.0

struct Rect2 {
    var width :Double
    var height:Double = 0.0
}

/// 順序必須和結構體成員順序一致。。 且必須包含所有的結構體成員
var r2 = Rect2(width:10.0,height:20.0)

print(r2.width)
print(r2.height)
//print(r.width)

struct Rect3 {
    var width:Double
    var height:Double
    func getWidth() -> Double {
        return width
    }
}
///  有構造函數 OC是沒有的
var r3 = Rect3.init(width: 33.0, height: 33.0)

print(r3.getWidth())
類 
class Rect5{
    var width:Double = 0.0
    var height:Double = 0.0
    func show()  {
        print("width === \(width) height === \(height)")
    }
}
/// 類沒有逐一構造器
var rect5 = Rect5.init()
rect5.show()
var rect6 = rect5  /// 類的賦值 本質上是 指向相同的存儲空間 。 所以修改其中一個,另一個的屬性也會跟着變化
rect6.height = 444.0
rect5.show()
//// 恆等運算符 用於判斷是否是同一個實例, 也就是是否指向同一塊存儲空間
if (rect6 === rect5){
    print("指向同一段內存空間")
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章