Consider this two codes:
if let myValue = myObject.value as NSString?{
//logic here
}
vs
if var myValue = myObject.value as NSString?{
//logic here
}
I know the let keyword is define a constant, is this mean that the first line of code, if the myObject.value
is NSString , the myValue
constant will be made? This looks confusing.
If you use the let
then you will not be able to change myValue
.
if let myValue = myObject.value as NSString? {
myValue = "Something else" // <-- Compiler error
}
On the other hand with var
you can.
if var myValue = myObject.value as NSString? {
myValue = "Something else" // <-- It's fine
}
Please note that myValue
does exists only within the scope of the if
and changing its value does not produce effect outside of its scope.
Hope this helps.
You use let
to create a constant, so in the first example you cannot change myValue
.
When you use var
, myValue
is a variable which you can change inside the if
statement.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With