結論から言うと (Error?)
は引数の型です。
(Error?) -> Void
は、引数が Error? 型 (つまり Error のオプショナル) で、戻り値のない関数を表す型になります。
関数を定義する場合は、次のように引数名とその型を両方書く必要があります。
swift
1func handleError(error: Error?) {
2 if let error = error {
3 print("ERROR: (error.localizedDescription)")
4 }
5}
クロージャの場合、引数の型を推論できる場合は省略することも可能です。
swift
1// この場合は推論できないので、error の型を指定する必要がある。
2let callback = { (error: Error?) in
3 if let error = error {
4 print("ERROR: (error.localizedDescription)")
5 }
6}
swift
1// この場合は推論できるので、error の型は省略できる。
2// (follow の第 2 引数 completion は FirestoreCompletion つまり (Error?) -> Void だから)
3follow(uid: "abc") { error in
4 if let error = error {
5 print("ERROR: (error.localizedDescription)")
6 }
7}
で、関数の型を書く場合は (Error?) -> Void
のように、引数名は不要で型だけ書きます。
swift
1let callback: (Error?) -> Void = { error in ... }
2// ~~~~~~~~~~~~~~~~ <- この部分が callback の型
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/04 15:01
2021/03/08 12:30