2016-09-06 6 views

答えて

9

単純に、違いはありません。 -> Voidは、関数が値を返さないという明示的な方法です。 docsから

関数定義された戻り値の型なしタイプボイドの特別な値を返します。これは単純に空のタプルであり、実質的にゼロ要素を持つタプルで、()と書くことができます。

したがって、以下これら三つの関数の宣言は同じです:

func someFunc() {} 
func someFunc() -> Void {} 
func someFunc() ->() {} 
+0

私は背中の裏に何も返されていないことを私が気楽に感じるので、私は明白が好きです:D –

2

それだけでいくつかの内部スウィフト矛盾です。両方の定義が同じ定義が、:

そう
func a() ->() {} 
func b() {} //by default has signature as a 
func c() -> Void //is different signature than a && b 

var x:(() -> Void) = c //OK 
var y:(() ->()) = a //OK 
var z:(() ->()) = c //ERROR - different signatures even if they mean the same 
x = a //ERROR - different signatures, can't convert "() -> Void" into "() ->()" 
関連する問題