Skip to content

Instantly share code, notes, and snippets.

@thanhluu
Created May 1, 2016 14:29
Show Gist options
  • Select an option

  • Save thanhluu/c34c42aee37e11f72593a6b0ac67329e to your computer and use it in GitHub Desktop.

Select an option

Save thanhluu/c34c42aee37e11f72593a6b0ac67329e to your computer and use it in GitHub Desktop.
Pattern Matching
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