【问题标题】:What's the difference between "var" and "let" in Swift?Swift 中的“var”和“let”有什么区别?
【发布时间】:2019-04-11 02:23:39
【问题描述】:

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

【问题讨论】:

标签: swift


【解决方案1】:

var 是一个变量,它可以一旦定义就可以改变

let 是一个常量,一旦定义就不能改变。

IBOutlet 需要是一个变量 (var),因为值是在对象生成之后定义的。

这里你没有改变你的变量:

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

label.text = text
label2.text = email

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

【讨论】:

  • 更正:它们并没有真正被重新定义。一旦动作的范围完成,常量就会被释放,所以下次点击按钮时,它们会重新创建。
猜你喜欢
  • 2014-07-23
  • 2022-07-21
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
相关资源
最近更新 更多