在Swift中,“ var”和“ let”有什么区别?

时间:2019-04-11 02:23:39

标签: swift

我知道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
    }
}

1 个答案:

答案 0 :(得分:0)

var变量,定义后可以更改

let常数,一旦定义,就不能更改。

IBOutlet必须是变量(var),因为值是在对象创建后 之后定义的。

这里您没有更改变量:

let text = nameInput.text
let email = emailInput.text

label.text = text
label2.text = email

由于标签是变量(var),因此可以更改它们。每次单击按钮时,常量(let)都会重新生成,因此,它们不会更改,而是重新定义为常量