OptionalSwiftで再実装しようとしています。私はそれを呼んでいMaybeます。空またはnilバージョンとジェネリック型を保持するバージョンを作成するために、2つの初期化があります。
enum Maybe<T>{
case Nothing
case Something(T)
init(){
self = .Nothing
}
init(_ something: T){
self = .Something(something)
}
}
ただし、空の を作成しようとするとMaybe、init()初期化子が呼び出されません。代わりに、もう一方init(_ something: T)は で呼び出されT = ()ます。
どうしたの?パラメータのない初期化が無視されるのはなぜですか?
var z = Maybe() // this calls init(_ something: T) with T = ()