答えて
()
はタイプ(及びVoid
空タプル型の型エイリアスである)、およびそのタイプの唯一値の両方です。そう
let x =()
はタイプ()
(別名Void
)値()
との一定のプロパティとしてx
を定義します。
同等の文は、型ではなく、値ではありません
let x = Void // error: expected member name or constructor call after type name
Void
ので
let x:() =()
let x:Void =()
しかしだろう。
なしパラメータおよび/または戻り値なし で関数型を定義するときノーリターン値のために空のパラメータリストの()
、 とVoid
を使用するためのコンセンサスがあるように思われます。これは、例えば、 UIKit補完ハンドラ、または GCDディスパッチキューに提出された実行ブロックで見ることができる。
func sync(execute block:() -> Void)
はい、それはVoid
別名、空のタプルです。
標準Void
型は次のように定義されます
typealias Void =()
明示的に戻り値の型を指定しない関数の戻り値の型。空のタプル(すなわち、
()
)。 Swift grammarのためのドキュメントを見てみると
:すべてのタプルタイプ
は、空のタプル型、
()
ためtype alias
あるVoid
を除いて、2種類以上を含んでいます。
tuple-type → () | ( tuple-type-element , tuple-type-element-list)
tuple-type-element-list → tuple-type-element | tuple-type-element , tuple-type-element-list
tuple-type-element → element-name type-annotation | type
element-name → identifier
ためはい、それはゼロタイプ/要素のタプルです。
も文法のドキュメントから入手できます。 > *すべてのタプル型には、空のタプル型の型エイリアスである 'Void'を除いて、2つ以上の型が含まれます。'() '*。 –
@GabrielePetronellaその文を指摘してくれてありがとう。 – luk2302
- 1. タイプは、迅速2.2
- 2. タイプ文字列が何のメンバー迅速
- 3. 迅速なコンテキストは何ですか?
- 4. 迅速なタイプの問題?
- 5. 迅速に機能をタイプにすることはできますか?
- 6. 迅速なAppDelegateとContextの機能は何ですか?
- 7. 同じタイプの迅速なタイプをキャストするのはなぜですか?
- 8. "??"の意味は何ですか?迅速に?
- 9. タイプ変換は、汎用プロトコルと迅速に競合しますか?
- 10. 迅速なリテラルのタイプの比較に失敗しますか?
- 11. メソッドのクロージャはインスタンスを迅速に保持していますか?迅速で
- 12. pointeeプロパティは迅速に何をしますか?
- 13. IOSに迅速
- 14. は迅速
- 15. 迅速UIAlertControllerは
- 16. は迅速
- 17. は迅速
- 18. CoreDataは - 迅速
- 19. オプションの "?"と "!"迅速に?
- 20. 迅速3とCGContextEOClip
- 21. 迅速
- 22. 迅速
- 23. - 迅速
- 24. 迅速なポインタのキャストと強制の違いは何ですか?
- 25. 迅速
- 26. すぐに迅速
- 27. はFireBase JSONから迅速
- 28. 迅速
- 29. 迅速
- 30. 迅速
@xoudini:密接に関連していますが、まったく同じではありません(私は思う)。その質問は型として '()'についてです。ここで '()'は値であり、 'Void'で置き換えることはできません。 'let x = Void'はコンパイルされません。 –
空のタプル()のインスタンス(値)を明示的に使用する可能性はありますか?つまり、タイプアリアス 'Void'のインスタンスは明示的に使用されていますか? /stackoverflow.com/q/34561452/2976878) – Hamish
@MartinR良い点、別の見方では、質問が全く同じではないことに同意する必要があります。 – xoudini