Swift If语句和Optionals(来自计算器Stanford/Youtube)



Swift中的if语句和选项的逻辑遍历问题。

计算器标签中的零被删除,我不明白为什么会发生这种情况。

大约1:10:03在斯坦福大学的youtube视频这里:https://youtu.be/_IRx1zoriPo?t=1h10m3s。

代码:

import UIKit
class ViewController: UIViewController {
    // linked to label
    @IBOutlet weak var display: UILabel!
    var userIsInMiddleOfTyping = false
    // linked to keys 0-9
    @IBAction func touchDigit(sender: UIButton) {
        let isDigit = sender.currentTitle!
        if userIsInMiddleOfTyping {
            let textCurrentlyInDisplay = display.text!
            display.text = textCurrentlyInDisplay + isDigit
        } else {
            display.text = isDigit
        }
        // user now typing
        userIsInMiddleOfTyping = true
    }
}

最初,程序运行,标签中的零默认设置显示在屏幕上。userIsInTheMiddleOfTyping为false,因此else块运行并在计算器中显示零。然后它被设置为真。

第二次是真的,按下的东西现在都在显示屏上了。然后,按下的内容被连接到显示器中的任何内容。

那么,是什么导致显示器现在取代了零呢?初始值是如何被替换而不是被连接的?

我不是在这里寻找不同的代码,这只是一个任意的例子。感谢您的帮助。干杯

touchDigit是一个操作。除非按下其中一个按钮,否则它不会运行

最初程序运行,标签中的零默认设置在显示中

纠正

userIsInTheMiddleOfTyping为false,因此else块运行

不正确。该方法未运行,因为未按下任何按钮。

我想我通过讨论解决了这个问题。最初,bool为false,因此在第一次按键时会击中else块,零的显示将被按下的任何键所取代。bool随后被设置为true。随后的所有按压都是真的,并且是串联的。

最新更新