小编典典

与Void关联类型的通用Swift 4枚举

swift

tl; dr

是否可以实例化具有类型关联值的通用Swift 4枚举成员Void

背景

我正在使用一个简单的 Result 枚举(类似于典型的Result):

enum Result<T> {
  case success(T)
  case error(Error?)
}

现在,我想使用这个枚举来表示操作的结果,该操作不会产生实际的结果值;该操作是 成功 还是 失败
。为此,我将类型定义为Result<Void>,但是我在如何创建Result实例方面苦苦挣扎,这都let res: Result<Void> = .success不可行let res: Result<Void> = .success()


阅读 228

收藏
2020-07-07

共1个答案

小编典典

在Swift 3中,您可以省略type的关联值Void

let res: Result<Void> = .success()

在Swift 4中,您必须传递类型的关联值Void

let res: Result<Void> = .success(())
// Or just:
let res = Result.success(())
2020-07-07