BETA

Swift Programming Language 5.2 うろ覚えな文法 列挙型

投稿日:2020-03-31
最終更新:2020-04-02

Swift Programming Language 5.2を読んで、
普段使わなかったり、うろ覚えな文法を備忘録として残します。

詳細な条件を指定したい場合は、以下のように記述できます。

enum Hoge {  
    case fuga  
    case piyo(Int, Int)  
}  

let value: Hoge = .piyo(8, 9)  

switch value {  
case .fuga:  
    break  
// piyoで引数xが8の場合  
case let .piyo(x, y) where x == 8:  
    print("x: \(x), y: \(y)") // x: 8, y: 9  
default:  
    break  
}  

条件としてRangeを使用できます。

let value = 0  

switch value {  
case 0...1:  
    print(value)  
default:  
    break  
}  

fallthroughキーワードを用いれば、無条件で、その次のケースの処理が実行されます。

let value = 0  
var message = ""  
switch value {  
case 0...1:  
    message = "\(value)"  
    fallthrough  
default:  
    message.append("です")  
}  
print(message) // 0です  

indirectキーワードを付与することで、Associated Valueに定義した型を再帰的に指定できます。

// indirectはcaseごとにも指定できる  
indirect enum ArithmeticExpression {  
    case number(Int)  
    case addition(ArithmeticExpression, ArithmeticExpression)  
    case multiplication(ArithmeticExpression, ArithmeticExpression)  
    case division(ArithmeticExpression, ArithmeticExpression)  
}  

型チェックする場合は以下のように書けます。

enum hoge {  
    case is Int  
    case let fuga as Double   
}  

参考

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

prez18の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう