此Swift函数的预期返回值是多少?
我是Swift编程新手,因此对返回值有疑问 假设我有以下代码块:此Swift函数的预期返回值是多少?,swift,Swift,我是Swift编程新手,因此对返回值有疑问 假设我有以下代码块: @IBAction func verifyItemPressed() { if pinTextField.text?.isEmpty ?? true { UIAlertController.showAlertWith(title: "Test", message: "Empty entry!!") return } 在这种情况下,我在这里可以期望什么样的返回值。因为,我知道它应该返
@IBAction func verifyItemPressed() {
if pinTextField.text?.isEmpty ?? true {
UIAlertController.showAlertWith(title: "Test", message: "Empty entry!!")
return
}
在这种情况下,我在这里可以期望什么样的返回值。因为,我知道它应该返回0或1以及true或false(如果我定义了bool)。没有期望的返回值。该函数没有返回值。空的
return
仅表示“现在离开函数,不要做任何其他事情”
在Swift中,有三种方式表示函数没有返回值:
func foo1() -> Void {
return
}
func foo2() -> () {
return
}
func foo3() {
return
}
最后一个是最常见的,因为它是最短的
没有返回值的函数根本不需要调用
return
。如果是这样,通常会由于某些条件或问题代码中的错误而提前离开函数。如果pinTextField.text?.isEmpty??true
是错误的。应该是??false
或更好的语法应该是==true
。请注意,set-field set-property默认值是一个空字符串,因此它永远不会返回nil,因此您可以安全地强制展开set-propertyif-pinTextField.text!。isEmpty
或使用uikeyinport
hasted属性,该属性可用于UITextField
和UITextView
<代码>如果!pinTextField.hasText{…@LeoDabus尽快展开选项通常是最容易阅读的(pinTextField.text??).isEmpty
。我不明白为什么pinTextField.text?.isEmpty??true
应该是不正确的。@LeoDabus?
是正确的。这将把零文本视为空文本。当然UITextField text
永远不会是nil
,所以最后它并不重要。@rmaddy在这种情况下,它不重要,但在gen中当对象为nil时,通常将条件视为false。==true
或==false
处理bool?
类型时,IMO是一种选择。(pinTextField.text??)
是毫无意义的