返回函数,在Swift中没有返回值

时间:2016-08-14 20:22:34

标签: ios swift

让我们来看看这个功能:

func nothing(){
    return
}

它不返回值,但是我们可以写return语句如何处理Swift?场景背后会发生什么return没有值返回0或任何值来处理这种情况?

3 个答案:

答案 0 :(得分:6)

以下签名都会返回空元组()实例(typealased为Void)。

func implicitlyReturnEmptyTuple() { }

func explicitlyReturnEmptyTuple() {
    return ()
}

func explicitlyReturnEmptyTupleAlt() {
    return
}

在上面三个中,函数签名中函数的返回类型已被省略,在这种情况下,它被隐式设置为空元组类型()。即,以下类似于上面的三个

func implicitlyReturnEmptyTuple() -> () { }

func explicitlyReturnEmptyTuple() -> () {
    return ()
}

func explicitlyReturnEmptyTupleAlt() -> () {
    return
}

关于您的评论(关于我们未明确返回implicitlyReturnEmptyTuple()的{​​{1}}的正文);来自the Language Guide - Functions: Functions without return values

  

定义返回类型不需要函数。这是一个版本   打印的()函数,称为sayHello(_:)   它自己的sayGoodbye(_:)值而不是返回它:

String
     

...

     

注意

     

严格来说,func sayGoodbye(personName: String) { print("Goodbye, \(personName)!") } 函数仍会返回   值,即使没有定义返回值。功能没有   定义的返回类型返回类型sayGoodbye(_:) 的特殊值。这是   只是一个空元组,实际上是一个零元素的元组,可以   写成Void

因此,我们可能仅针对() - return(return ... - return)函数省略(),在这种情况下,Void 实例将被隐含地退回。

答案 1 :(得分:5)

在这种情况下,return仅表示"离开功能"。

答案 2 :(得分:0)

函数是Swift中的一流对象。 它们的类型

func nothing(){
    return
}

上述功能的实际表示是这样

func nothing()->(){
        return
    }

在上面的代码中,函数的类型为空元组

  

“()”

如果将上述函数分配给某个变量,我们可以看到返回的元组

enter image description here