提到
let
常量,想必大家第一时间能想到的就是它声明的值是常量,无法被写入赋值。
它的这个特性对于线程安全来讲是十分有用的。但是在swift中有一处特殊的地方就是在指定的初始化方法中可以对let
常量进行赋值,还不会报错,why?
代码如下:
本人掘金写作地址
- 示例代码
class TestObjc {
let tempStr: String
init(str: String) {
tempStr = str
}
}
let testObj = TestObjc.init(str: "你好")
print(testObj.tempStr)
分析: 因为在swift中的init方法是安全并且只会被调用一次,所以我们在这里对常量进行赋值操作不会引起任何线程安全的问题。
网友评论