スウィフトの戻り値の理解に苦労しています。 これらの違いを説明できますか?スウィフト関数とボイド戻り型とノンリターン型
func someFunc() -> Void {}
func someFunc() {}
スウィフトの戻り値の理解に苦労しています。 これらの違いを説明できますか?スウィフト関数とボイド戻り型とノンリターン型
func someFunc() -> Void {}
func someFunc() {}
単純に、違いはありません。 -> Void
は、関数が値を返さないという明示的な方法です。 docsから
:
関数定義された戻り値の型なしタイプボイドの特別な値を返します。これは単純に空のタプルであり、実質的にゼロ要素を持つタプルで、()と書くことができます。
したがって、以下これら三つの関数の宣言は同じです:
func someFunc() {}
func someFunc() -> Void {}
func someFunc() ->() {}
私は背中の裏に何も返されていないことを私が気楽に感じるので、私は明白が好きです:D –
それだけでいくつかの内部スウィフト矛盾です。両方の定義が同じ定義が、:
そう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 "() ->()"
したがって、戻り値自体に違いはないが、メソッドシグネチャ(タイプ)の差は依然として解消されませんか? –