我有以下类型Maybe
:
enum Maybe<T>:{
case Nothing
case Something(T)
init(){
self = .Nothing
}
init(_ something: T){
self = .Something(something)
}
}
我希望此代码可以调用我的第二个初始化程序,将Int
转换为Maybe<NSDate>
:
var c : Maybe<NSDate> = NSDate()
不是这样。如何使上述代码工作(如内置Optional
那样)?
答案 0 :(得分:1)
您需要致电初始化程序:
var c = Maybe(NSDate())
// type of c inferred as Maybe<NSDate>
Swift的Optional
类型依赖于某些编译器魔法来允许直接分配给它的Some<T>
情况,而无需显式调用初始化程序。