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

我们来看看这个函数:

func nothing(){ return } 

它不会返回一个值,但是我们可以写return语句,Swift如何处理呢? 在场景后面发生的情况是否return值没有返回0或任何值来处理这种情况?

以下签名全部返回空元组的实例 () (typealiased为Void )。

 func implicitlyReturnEmptyTuple() { } func explicitlyReturnEmptyTuple() { return () } func explicitlyReturnEmptyTupleAlt() { return } 

在上述三个函数中,function签名中函数的返回types已被省略,在这种情况下,它被隐式设置为空元组types() 。 也就是说,以下三个类似于上述三个

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

关于你下面的评论(关于implicitlyReturnEmptyTuple()式返回的body implicitlyReturnEmptyTuple() ,我们不明确地返回() ); 从语言指南 – 函数:无返回值的函数 :

函数不需要定义返回types。 下面是sayHello(_:)函数的一个版本,名为sayGoodbye(_:) ,它打印自己的String值而不是返回它:

 func sayGoodbye(personName: String) { print("Goodbye, \(personName)!") } 

注意

严格地说, sayGoodbye(_:)函数仍然返回一个值 ,即使没有定义返回值。 没有定义的返回types的函数返回一个types为Void的特殊值 。 这只是一个空元组,实际上是一个元素为零的元组,可以写成()

因此,我们可以省略return ...只对() return ...Void -return)函数,在这种情况下,a () 实例将隐式返回。

在这种情况下, return只意味着“离开function”。