enum Operator: Character {
case Substract = "-"
case Add = "+"
case Multiply = "*"
case Divide = "/"
}
私は上記のenumを持っており、有効な演算子を持っているかどうかを調べる関数が宣言されています。例えばisOperatorは(「+」)列挙型が型に見つかりません
func isOperator(_ symbol: Character)-> Operator? {
let op = Operator(rawValue: symbol)
switch op {
case .Substract, .Add, .Multiply, .Divide:
return op
default:
return nil
}
}
ここ返し何コンパイラ「列挙型ケースタイプでは見られない」されては私のswitch文(.Add ..など)で定義されている例を意味オペレータタイプでは使用できません。 。 のopはコンパイラが大文字小文字を区別できないのはなぜですか?
おかげエイドリアンは、命名規則のために。複数のケースを追加してもpower(^)と言っても、最初のバージョンではオペレータがいて、opeator以外の値が渡されると、enumは初期化されず、nilを返します。だから私はここでガードの使用が表示されません。あなたは? – manismku
@manismku私の最初のバージョンでは、 'init(rawValue:)'はオプションなので 'guarda'はありません。それが失敗すると、それはnilaを返します。 –