Привет всем Я пытаюсь понять, почему приведенный ниже код позволяет мне назначить новое значение для строки wee в моем классе. Я думал, что пусть будет неизменным, но он работает здесь. Может кто-то объяснит это. Благодарю.Swift let изменен в классах почему?
import Foundation
class MyClass {
let wee:String
init?(inInt:Int) {
let j:String = "what"
//j = "I shouldn't be able to do this wiht let" // error rightly so
//println(j)
self.wee = "wow"
if inInt != 2 {
return nil
}
self.wee = "hey"
self.wee = "blas" // I shouldn't be able to do this
}
}
if let myClass:MyClass = MyClass(inInt: 2) {
myClass.wee // prints blas
}
Swift 1.2 должен позволить вам отложить настройку переменной let, чтобы вы могли принять решение о том, что ей назначить, но она должна работать только один раз, и после ее установки она должна быть константой AFAIK. – clearlight