考虑这两个代码:
if let myValue = myObject.value as NSString?{
//logic here
}
Run Code Online (Sandbox Code Playgroud)
VS
if var myValue = myObject.value as NSString?{
//logic here
}
Run Code Online (Sandbox Code Playgroud)
我知道let关键字是定义一个常量,这是否意味着第一行代码,如果myObject.value是NSString,myValue则会产生常量?这看起来令人困惑.
Luc*_*tti 18
如果你使用let那么你将无法改变myValue.
if let myValue = myObject.value as NSString? {
myValue = "Something else" // <-- Compiler error
}
Run Code Online (Sandbox Code Playgroud)
另一方面,var你可以.
if var myValue = myObject.value as NSString? {
myValue = "Something else" // <-- It's fine
}
Run Code Online (Sandbox Code Playgroud)
请注意,myValue确实只存在if于其范围内并且更改其值不会在其范围之外产生影响.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
9970 次 |
| 最近记录: |