tl; dr
一般的なSwift 4列挙型メンバーを型Void
の関連する値でインスタンス化することは可能ですか?
背景
私は単純なResult列挙型を使用しています( antitypical Result と同様):
_enum Result<T> {
case success(T)
case error(Error?)
}
_
次に、この列挙型を使用して、実際の結果値を生成しない操作の結果を表します。操作はsucceededまたはfailedのいずれかです。このために、タイプを_Result<Void>
_として定義しますが、Resultインスタンスの作成方法に苦労しています。_let res: Result<Void> = .success
_もlet res: Result<Void> = .success()
も機能しません。
Swift 3では、タイプVoid
の関連する値を省略できます。
let res: Result<Void> = .success()
Swift 4では、Void
型の関連値を渡す必要があります。
let res: Result<Void> = .success(())
// Or just:
let res = Result.success(())
Voidは空のTuple:()の単純なtypealiasです。したがって、次のいずれかとして使用できます。
let res1: Result<Void> = .success(())
let res2 = Result<Void>.success(())
let res3 = Result.success(() as Void)
let res4 = Result.success(())