当前位置: 首页 > news >正文

swift-08-属性、汇编分析inout本质

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

1.1 存储属性( Stored Property)

 类似于成员变量这个概念
 存储在实例的内存中
 结构体、类可以定义存储属性
 枚举不可以定义存储属性(因为枚举只存储关联值和case)

1.2 计算属性( Computed Property)


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

print(MemoryLayout<Circle>.stride) // 8

struct Circle {
// 存储属性
var radius: Double
// 计算属性
var diameter: Double {
set {
radius = newValue / 2
}
get {
radius * 2
 }
  }
}

var circle = Circle(radius: 5)
print(circle.radius) // 5.0
print(circle.diameter) // 10.0

circle.diameter = 12
print(circle.radius) // 6.0
print(circle.diameter) // 12.0

二、存储属性

 关于存储属性,Swift有个明确的规定
在创建类 或 结构体的实例时,必须为所有的存储属性设置一个合适的初始值
 可以在初始化器里为存储属性设置一个初始值
 可以分配一个默认的属性值作为属性定义的一部分

三、计算属性 

如果这个属性可以通过宁一个属性计算出来就设计为计算属性

有set 必须有get 

四、枚举rawValue原理

枚举原始值rawValue的本质是:只读计算属性

enum TestEnum : Int {
case test1 = 1, test2 = 2, test3 = 3
var rawValue: Int {
switch self {
case .test1:
return 10
case .test2:
return 11
case .test3:
return 12
}
}
}

print(TestEnum.test3.rawValue) // 12

五、延迟存储属性( Lazy Stored Property


 

class PhotoView {
lazy var image: Image = {
let url = "https://www.520it.com/xx.png"
let data = Data(url: url)
return Image(data: data)
}() 调用闭包
}

六、延迟存储属性注意点

七、属性观察器(Property Observer )

八、全局变量、局部变量

 九、inout的再次详细研究 1.22 输入输出参数本质就是引用传递

十、类型属性( Type Property)

十一、类型属性细节 

相关文章:

  • StarRocks 助力首汽约车精细化运营
  • react实现上传图片到阿里云OSS以及问题解决(保姆级)
  • Spring中使用Kafka的详细配置,以及如何集成 KRaft 模式的 Kafka
  • 数据结构和算法(十二)--最小生成树
  • 做好一个测试开发工程师第二阶段:java入门:idea新建一个project后默认生成的.idea/src/out文件文件夹代表什么意思?
  • 基于开源AI大模型AI智能名片S2B2C商城小程序,探究私域电商中人格域积累与直播电商发展
  • 每日算法-250408
  • 使用Java多线程和POI进行Elasticsearch大批量数据导出
  • linux开发环境
  • 物联网外设管理服务平台
  • 吊舱的陀螺稳定系统技术要点!
  • java设计模式-建造者模式
  • 【算法竞赛】树上最长公共路径前缀(蓝桥杯2024真题·团建·超详细解析)
  • 【家政平台开发(27)】商务部信用对接、法律咨询与视频面试功能开发全攻略
  • ADI的BF561双核DSP怎么做开发,我来说一说(六)IDE硬盘设计
  • EasyExcel实现图片导出功能(记录)
  • OpenHarmony-AI调研
  • Proximal Policy Optimization (PPO)2017
  • MySQL详解最新的官方备份方式Clone Plugin
  • 【机器学习】决策树
  • 网站上的广告位是怎么做的/百度搜索页面
  • 上海专业网站建设咨询/站长统计ios
  • 没有网站备案可以做诚信认证嘛/百度搜索什么关键词能搜到网站
  • wordpress图片无法居中/标题seo是什么意思
  • 格尔木市公司网站建设/建网站需要什么条件
  • 建设一个用教育网站/免费的行情软件网站下载