博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构体初始化
阅读量:6267 次
发布时间:2019-06-22

本文共 1017 字,大约阅读时间需要 3 分钟。

结构体初始化

如果结构体没有实现任何初始化函数,Swift 默认给生成一个包含所有成员变量的初始化构造器。

struct RocketConfiguration {    let name: String = "Athena 9 Heavy"    let numberOfFirstStageCores: Int let numberOfSecondStageCores: Int let numberOfStageReuseLandingLegs: Int }

如果使用如下的代码初始化这个结构体:

let athena9Heavy = RocketConfiguration()

将产生编译错误,如下图:

 
 

有两种做法可以消除错误,声明结构体成员时即赋值,如下:

struct RocketConfiguration {    let name: String = "Athena 9 Heavy"    let numberOfFirstStageCores: Int = 3 let numberOfSecondStageCores: Int = 1 let numberOfStageReuseLandingLegs: Int? = nil } let athena9Heavy = RocketConfiguration()

但这种情况下,成员变量无法再修改,除非将let改成var。或者使用默认的初始化构造器,给每个成员赋一个初始化的值:

struct RocketConfiguration {    let name: String = "Athena 9 Heavy"    let numberOfFirstStageCores: Int let numberOfSecondStageCores: Int let numberOfStageReuseLandingLegs: Int } let athena9Heavy = RocketConfiguration(numberOfFirstStageCores: 3, numberOfSecondStageCores: 1, nominalBurnTime: nil)

 

作者:yanging
链接:https://www.jianshu.com/p/fe8918f5917a
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
你可能感兴趣的文章
MyBatis初学
查看>>
企业挖角 AI 教授是不是「原罪」?
查看>>
Nginx 配置学习笔记
查看>>
Flask 教程 第八章:粉丝
查看>>
HanLP中文分词Lucene插件
查看>>
解决Oracle死锁问题
查看>>
九州云箭完成A轮融资,峰瑞资本投资
查看>>
Ubuntu安装Python的包管理工具Pip以及环境配置
查看>>
如何用纯 CSS 创作一个没有 DOM 元素的动画
查看>>
3 种常见的数据科学职业转型及其实现路径
查看>>
苹果挖角特斯拉汽车设计师,“造车”实锤更近一步
查看>>
【对话CTO】第02期 阿里云客户“百应科技”,用AI助力企业与客户的每一次连接...
查看>>
今年安卓开发中碰到的几个稀奇古怪的问题
查看>>
3.3.9版本free命令可用内存计算方法
查看>>
vscode插件快餐教程(1) - 从写命令开始
查看>>
安霸Alberto Broggi :计算机视觉技术驱动自动驾驶的发展 | 2019 AI+智能汽车创新峰会...
查看>>
Chrome 功能总结
查看>>
Python之父重回决策层,社区未来如何发展?
查看>>
CyclicBarrier
查看>>
haproxy mysql实例配置
查看>>