简述
在Swift 4中实例化一个泛型枚举成员,其关联值为Void
,是否可能?
背景
我正在使用一个简单的Result枚举(类似于antitypical的Result库):
enum Result<T> {
case success(T)
case error(Error?)
}
现在,我想用这个枚举来表示一个不产生实际结果值的操作的结果;操作要么是“成功”,要么是“失败”。为此,我将定义类型为
Result<Void>
,但我不知道如何创建Result实例,既不是let res: Result<Void> = .success
,也不是let res: Result<Void> = .success()
。
let f = Result<Void>.success
的类型为(Void)->Result<Void>
。在Swift 3中,您可以调用let r = f()
,而在4b5中,您必须添加一个参数:let r = f(())
。 - Martin R