欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Swift枚举&结构体&类

程序员文章站 2022-05-13 20:04:21
...
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("指向同一段内存空间")
}