常数 – “let”关键字在Swift中如何工作?
我在本指南中阅读了这个简单的解释:
但我想要比这更多的细节。如果常量引用一个对象,我还可以修改其属性吗?如果它引用了一个集合,我可以添加或删除元素吗?我来自C#背景;它类似于readonly如何工作(除了能够在方法体中使用它),如果不是,它是如何不同的?
let有点像C中的const指针。如果使用let引用对象,可以更改对象的属性或调用方法,但是不能为该标识符分配不同的对象。
还有对集合和非对象类型的影响。如果引用一个使用let的结构体,则不能更改其属性或调用其任何mutation func方法。 使用let / var与集合非常类似于mutable / immutable Foundation集合:如果将数组分配给let,则不能更改其内容。如果您引用了一个字典与let,您不能添加/删除键/值对或为键分配一个新的值 – 它是真正不变的。如果要分配到下标,附加或以其他方式突变数组或字典,则必须使用var声明它。 (在Xcode 6 beta 3之前,Swift数组有一个奇怪的价值和参考语义的混合,当被分配给一个let时,它们是部分可变的 – 现在已经不复存在了) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 利用TinyXML读取VOC2012数据集的XML标注文件裁剪出所有人体
- 4G技术哪家强?说清楚FDD和TDD之间的事
- 如何在iOS9.2上修复Xcode错误“无法找到开发人员磁盘映像”
- ruby-on-rails – 使用嵌套路由与accepts_nested_attribute
- iphone – UITableView中的选中标记
- swift2 – Swift 2:防守身体可能不会错过错误
- ios – 收到以下错误“此查询具有出色的网络连接.你必须等到
- Tiny210(S5PV210) U-BOOT(四)----Nand Flash原理(1)
- 云计算演义(3)狂奔在关闭公有云路上的巨头们:IBM、Oracle、
- c# – 为ServicePointManager.SecurityProtocol设置每个请求