swift 学习笔记(22)-属性(存储属性/延迟属性)
来源:互联网 发布:人工智能剧情详细 编辑:程序博客网 时间:2024/06/06 12:36
属性有很多类型,比如存储属性:赋值存值的,延迟属性,差不多和 oc 中的懒加载类似,计算属性,类型属性.还有属性观察器等
存储属性
class Person{ // 属性由 var 修饰,如果类实例也是 var 修饰,则类实例的属性值可变 var name = "zhangsan" var age = 23}//var 修饰类实例,属性值可变,类实例也可以重新赋值var person1 = Person()person1.name = "wangwu"print(person1.name)person1.name = "张三"print(person1.name)person1 = Person()//let 修饰类实例,var属性值可变, let 修饰的属性值不可变,类实例 不可以重新赋值let person2 = Person()person2.name = "zhaoliu"print(person2.name)person2.name = "赵六"print(person2.name)//let 修饰的类实例不可以重新赋值//person2 = Person()//结构体struct Point { var x = 0 var y = 0}//var 修饰结构体实例,属性值可变,类实例也可以重新赋值var p1 = Point()p1.x = 20print(p1.x)p1.x = 30print(p1.x)//let 修饰的结构体实例不可以重新赋值,属性也不可以重新赋值,不管属性是 var 还是 let 修饰,都默认为 let 不能修改 let p2 = Point()print(p2.y)//p2.y = 11// p2 = Point()
延迟属性
注意观察属性调用的时间(有了 lazy 关键字,只有当属性第一次被调用的时候才会初始化)
class Man{ var name = "wangxiao"// 延迟属性 lazy 前面加 lazy 关键字 lazy var car = Car(car:"baoma")}class Car{ var car = "dazhong" init(car:String) { self.car = car for i in 1...1000{ print(i) } }}// 如果 Man 的car 属性不加 lazy ,就会立刻执行 car 类中的 for 循环进行初始化var man = Man()// 如果加了 lazy 在这里才会初始化 car//man.car = Car(car: "baoma")
0 0
- swift 学习笔记(22)-属性(存储属性/延迟属性)
- 【Swift】延迟存储属性
- 9.4 Swift延迟存储属性
- Swift 系统学习 24 类相关 存储属性 计算属性 类型属性 延迟加载属性
- Swift基础语法-属性,存储属性,延迟存储属性,计算属性,属性观察器,类属性
- Swift 系统学习 25 类相关 延迟存储属性
- swift学习笔记--计算属性和存储属性的区别
- Swift 属性学习笔记
- Swift 延迟属性 lazy
- Swift 基础学习(存储属性)
- swift 学习笔记(23)-属性(计算属性)
- Swift学习笔记(八)属性
- Swift中延迟属性@lazy
- Object-C--->Swift之(九)延迟存储属性
- Swift学习笔记 - Swift属性只读
- Swift存储属性
- Swift-存储属性
- Swift-存储属性
- java 的集合类介绍
- Unit 1
- Android图片加载神器之Fresco-更灵活的设置加载特效[Java代码实现XML效果]
- 欢迎使用CSDN-markdown编辑器
- linux搭建nginx+php+mysql
- swift 学习笔记(22)-属性(存储属性/延迟属性)
- 第十一周 OJ总结<6>-牛顿迭代法
- Quick中的触摸处理和时间调度
- 好用的android studio插件
- 划区灌溉
- oj-D-根据日期求星座
- PCA降维
- VS2012 快捷键 VS RESHARPER 设置
- 15 个 Android 通用流行框架大全