了解 Ios 上的计算器代码
understand calculator code on Ios
想看看程序员是怎么解释这段代码的,最后一行有什么用?
我是新手,我不确定我是否正确理解这段代码。希望你能给出很好的详细答案,这样我就能从中受益,也能从以后的其他新手那里受益。
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(_ sender: UIButton)
被触发。
创建了一个新常量 digit
并将其设置为发件人的标题,它是 UIButton
的一个实例(标题 属性 是按钮的显示名称,例如 1, 2,3..)
创建了一个新常量 CurrentTextinDisplay
并将其设置为我认为是 UITextField
的内容(展开它,因此不为空)
let CurrentTextinDisplay = Display.text!
如果用户在调用方法之前输入了一些东西(虽然代码实现很糟糕),我们将之前创建的 digit
常量附加到 Display
实例的内容中(我猜) 保存已经输入的数字。
if UserIsInTheMiddleOfTyping {
Display.text = CurrentTextinDisplay + digit
}
否则,如果用户输入第一个数字,则设置 Display
实例以保存第一个 digit
else{
Display.text = digit
}
在返回方法之前将 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
}
}
}
希望这对您有所帮助,如果有帮助,请将问题标记为正确。
再见
想看看程序员是怎么解释这段代码的,最后一行有什么用? 我是新手,我不确定我是否正确理解这段代码。希望你能给出很好的详细答案,这样我就能从中受益,也能从以后的其他新手那里受益。
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(_ sender: UIButton)
被触发。
创建了一个新常量 digit
并将其设置为发件人的标题,它是 UIButton
的一个实例(标题 属性 是按钮的显示名称,例如 1, 2,3..)
创建了一个新常量 CurrentTextinDisplay
并将其设置为我认为是 UITextField
的内容(展开它,因此不为空)
let CurrentTextinDisplay = Display.text!
如果用户在调用方法之前输入了一些东西(虽然代码实现很糟糕),我们将之前创建的 digit
常量附加到 Display
实例的内容中(我猜) 保存已经输入的数字。
if UserIsInTheMiddleOfTyping { Display.text = CurrentTextinDisplay + digit }
否则,如果用户输入第一个数字,则设置 Display
实例以保存第一个 digit
else{ Display.text = digit }
在返回方法之前将 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
}
}
}
希望这对您有所帮助,如果有帮助,请将问题标记为正确。
再见