Optional
Swiftで再実装しようとしています。私はそれを呼んでい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 = ()