Created
May 1, 2016 14:29
-
-
Save thanhluu/c34c42aee37e11f72593a6b0ac67329e to your computer and use it in GitHub Desktop.
Pattern Matching
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| enum Coin: Double { | |
| case Penny = 0.01 | |
| case Nickel = 0.05 | |
| case Dime = 0.1 | |
| case Quarter = 0.25 | |
| } | |
| let wallet: [Coin] = [.Penny, .Nickel, .Dime, .Dime, .Quarter, .Quarter, .Quarter] | |
| var count: Int = 0 | |
| for coin in wallet { | |
| switch coin { | |
| case .Quarter: count += 1 | |
| default: continue | |
| } | |
| } | |
| for case .Quarter in wallet { | |
| count += 1 | |
| } | |
| for coin in wallet { | |
| if case .Nickel = coin { | |
| print("Not so much money!") | |
| } else if case .Dime = coin { | |
| print("Eh I guess it's some money") | |
| } | |
| } | |
| let someOptional: Int? = 42 | |
| if case .Some(let x) = someOptional { | |
| print(x) | |
| } | |
| // Nil Coalescing Operator | |
| let firstName: String? = "Pasan" | |
| let username = "Pasanpr" | |
| var displayName: String | |
| if firstName != nil { | |
| displayName = firstName! | |
| } else { | |
| displayName = username | |
| } | |
| displayName = firstName != nil ? firstName! : username | |
| displayName = firstName ?? username | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment