我知道var
用于定义变量,let
用于定义常量。
我的问题是,我可以更改let
常量。例如,我的测试代码接受了用户的两个输入,即他们的姓名和电子邮件。当按下一个按钮时,它将更新两个标签。
但是,当我更改输入时,它也会更改标签。那为什么不崩溃呢?
class ViewController: UIViewController {
@IBOutlet weak var emailInput: UITextField!
@IBOutlet weak var nameInput: UITextField!
@IBOutlet weak var label: UILabel!
@IBOutlet weak var label2: UILabel!
@IBAction func actionButton(_ sender: Any) {
let text = nameInput.text
let email = emailInput.text
label.text = text
label2.text = email
}
}
答案 0 :(得分:0)
var
是变量,定义后可以更改
let
是常数,一旦定义,就不能更改。
IBOutlet
必须是变量(var
),因为值是在对象创建后 之后定义的。
这里您没有更改变量:
let text = nameInput.text
let email = emailInput.text
label.text = text
label2.text = email
由于标签是变量(var
),因此可以更改它们。每次单击按钮时,常量(let
)都会重新生成,因此,它们不会更改,而是重新定义为新常量