理解Ios上的计算器代码

理解Ios上的计算器代码,ios,swift,calculator,Ios,Swift,Calculator,我想看看程序员如何解释这段代码,以及最后一行的实用性是什么? 我是一个新的初学者,我不确定我是否正确理解了这段代码。希望你能给出详细的答案,这样我就能从中受益,也能从中受益 var UserIsInTheMiddleOfTyping = false @IBAction func TouchedDigit(_ sender: UIButton) { let digit = sender.currentTitle! let CurrentTextinDisplay = Display

我想看看程序员如何解释这段代码,以及最后一行的实用性是什么? 我是一个新的初学者,我不确定我是否正确理解了这段代码。希望你能给出详细的答案,这样我就能从中受益,也能从中受益

var UserIsInTheMiddleOfTyping = false
@IBAction func TouchedDigit(_ sender: UIButton) {
    let digit = sender.currentTitle!
    let CurrentTextinDisplay = Display.text!
    if UserIsInTheMiddleOfTyping {
    Display.text =  CurrentTextinDisplay + digit
    }else{
        Display.text = digit
    }
     UserIsInTheMiddleOfTyping = true
}

}这是基于我对这段代码的解释的一个简短解释。

显然,在执行该方法之前,我们不知道用户是否正在键入任何内容,因为该方法可能已经被调用,因此
UserIsInTheMiddleOfTyping
可能是
true
false

var UserIsInTheMiddleOfTyping=false

当他在计算器上点击一个数字时,就会触发方法
TouchedDigit(uSender:ui按钮)

将创建一个新常量
digit
,并将其设置为发送者的标题,该标题是
UIButton
的一个实例(标题属性是按钮的显示名称,例如1,2,3..)

将创建一个新常量
currentTextInPlay
,并将其设置为我认为是
UITextField
的内容(因此展开它时不为空)

让CurrentTextInPlay=Display.text

如果用户在调用该方法之前键入了某些内容(尽管代码实现非常糟糕),我们会将之前创建的
digit
常量附加到
Display
实例的内容中,该实例(我猜)保存了已键入的数字

如果用户是InTheMiddleOftyping{ Display.text=CurrentTextInPlay+数字 }

否则,如果用户正在输入第一个数字,当我们将
显示
实例设置为保持第一个
数字时

否则{ Display.text=数字 }

在返回之前,该方法将
UserIsInTheMiddleOfTyping
设置为true。 (下次触发该方法时,我们将肯定地输入if语句并追加新数字。)

UserIsInTheMiddleOfTyping=true

我个人会将代码缩减如下:

//There is no need to save in a variable if the user is in the middle of typing
//Because he will be in this state only when the method is triggered, therefore just shrink as follows:

@IBAction func TouchedDigit(_ sender: UIButton) {

    //Safe unwrapping of sender.currentTitle:
    if let actualDigit = sender.currentTitle {

        //Safe unwrapping of Display.text:
        if let actualText = Display.text {

            Display.text =  actualText + actualDigit


        }

    }

}
希望这有帮助,如果有,请将问题标记为正确


再见,谢谢你,艾伯特。这非常有帮助,我感谢你给我时间详细解释。我不知道他们为什么否决我的问题,好像他们有一天不是初学者一样。但是非常感谢你,阿尔伯特。很高兴我能帮助你。忘记别人,做你自己。下次试着更深入地描述你的问题。