なぜこれが遊び場で機能するのかは誰でも知っていますが、通常のソースファイルでは、次/Incorrect argument label in call (have 'rawValue:', expected 'name:')
のエラーが発生します。バグかもしれません。
enum Foo : Int {
case A, B, C
init?(name:String) {
switch name {
case "A": self = .A
case "B": self = .B
case "C": self = .C
default: return nil
}
}
}
let foo2 = Foo(rawValue:2)!
編集:Mac OSでも問題なく動作することに気づきました。これは、iOS 用にコンパイルしている場合にのみ表示されます。