swfit 中级 structs properties
发布时间:2020-12-15 07:20:43 所属栏目:百科 来源:网络整理
导读:Structs 和 Classes 两者非常类似都有 方法 属性 初始化函数 扩展 extension 协议 proctocol。 区别是class对象是引用类型,struct 是值类型类似 Int Float 等 struts 没有继承 不能类型转换 没有析构函数 主要用户封装值 例子 struct Address { var street:
Structs 和 Classes两者非常类似都有 方法 属性 初始化函数 扩展 extension 协议 proctocol。 例子struct Address { var street: String var city: String static var defaultStreet = "Xinghu street 1111" // struct level func isValid() -> Bool { if city == "suzhou"{ return true }else{ return false } } //修改成员变量函数 必须加关键字 mutating mutating func resetStreet(){ street = Address.defaultStreet } } var address = Address(street: "xinghujie",city: "suzhou") address.isValid() Address.defaultStreet 属性通过var or let来定义变量or常量属性 对开销大的属性值 可以通过 lazy 关键字来修饰 计算属性//不存储数据 var area : Float { get { return x*y } set(newArea) { x=newArea/y } } 属性 观察 property observervar userName = "" { willSet(newName){ ... } didSet{ .... } } 例子class Aman { var name = "" var strength = 20 var intelligence = 10 //延迟 属性 lazy var inventory: Int = self.importInventory() func importInventory () -> Int { return 100 } //计算属性 var dexterity : Int { get { return (strength+intelligence) /2 } set (newDextirity){ strength = dextirity/2 intelligence = Int(dextirity*1.5) } } //属性观察 var health = 100 { willSet { } didSet{ println(" ... ") } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |