在下面的代码中,我对代码中的return
语句返回的位置感到困惑?执行时,它按预期工作,但它返回到:
if userIsInTheMiddleOfTyping == true
还是回到:
if let digit = sender.currentTitle
以下是适用的完整代码块。
class ViewController: UIViewController {
private var userIsInTheMiddleOfTyping = false
private var decimalUsed = false
@IBAction private func touchDigit(sender: UIButton)
{
if let digit = sender.currentTitle {
if userIsInTheMiddleOfTyping == true {
if digit == "." && decimalUsed == true {
return //where does this return to?
} else if digit == "." && decimalUsed == false {
decimalUsed = true
}
let textCurrentlyInDisplay = display.text!
display.text = textCurrentlyInDisplay + digit
} else {
display.text = digit
}
userIsInTheMiddleOfTyping = true
}
}
答案 0 :(得分:3)
return
总是从函数返回,所以在这种情况下它返回到调用touchDigit(...)
的代码行
基本上,return
只会停止执行touchDigit
功能。
(这意味着return
之后的所有代码都不会运行)
答案 1 :(得分:2)
return
只会停止代码。如果您愿意,可以将其放入函数中。例如:
如果我只想在某个语句为真的情况下继续运行某些代码,那么你可以return
该函数在错误的情况下停止它。
func something(a: Int, b: Int) {
if a != b {
return//Stops the code
}
//Some more code -- if a is not equal to b, this will not be called
}
请记住,这仅适用于void
个功能。它也可以与其他人一起工作,但这略有不同。你必须随身携带一些东西。另一个例子:
func somethingElse(a: Int, b: Int) -> Bool{
if a != b {
return false //stops the code, but also returns a value
}
return true //Will only get called if a == b
}
在此函数中,返回Boolean
。如果是!= b,则写入return false
因为返回false而停止代码。
有关退货的详情,请访问Apple's documentation on functions.