在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”。