Swift属性

Swift属性,第1张

概述概述 Swift中跟实例相关的属性可以分为2大类 存储属性(Store Property) 类似成员变量的概念 存储在实例的内存中 结构体、类可以定义存储属性 枚举不可以定义存储属性 计算属性(Computed Property) 本质就是方法(函数) 不占用实例的内存 枚举、结构体、类可以定义计算属性 存储属性  关于存储属性,Swift有明确规定 在创建类 或 结构体的示例时,必须为所有的存储 概述

Swift中跟实例相关的属性可以分为2大类

存储属性(Store Property)

类似成员变量的概念 存储在实例的内存中 结构体、类可以定义存储属性 枚举不可以定义存储属性

计算属性(Computed Property)

本质就是方法(函数) 不占用实例的内存 枚举、结构体、类可以定义计算属性

存储属性 

关于存储属性,Swift有明确规定

在创建类 或 结构体的示例时,必须为所有的存储属性设置一个合适的初始值

可以在初始化器里为存储属性设置一个初始值 可以分配一个默认的值作为属性定义的一部分 计算属性

set传入的新值默认叫做newValue,也可以自定义 

只读计算属性:只有get,没有set

定义计算属性只能用var,不能使用let 因为let代表常量:值是一成不变的

延迟存储属性

使用lazy可以定义一个延迟存储属性,在第一次用到属性的时候才会进行初始化

lazy属性必须是var,不能是let 因为let必须在示例的初始化方法完成之前拥有值

如果多条线程同时第一次方位lazy属性 无法保证属性只被初始化一次

延迟存储属性注意点

当结构体包含一个延迟属性时,只有var才能访问延迟存储属性

因为延迟存储属性初始化时需要改变结构体的内存

属性观察器 总结

以上是内存溢出为你收集整理的Swift属性全部内容,希望文章能够帮你解决Swift属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/999927.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存