Skip to content

Instantly share code, notes, and snippets.

@vialyx
Created April 20, 2018 11:30
Show Gist options
  • Save vialyx/37edbed40bdcaf6b15c0e0f7062d78ea to your computer and use it in GitHub Desktop.
Save vialyx/37edbed40bdcaf6b15c0e0f7062d78ea to your computer and use it in GitHub Desktop.
enum Gender {
case unknown
case male
case female
}
struct User {
let name: String
let gender: Gender
}
let users = [User(name: "Guest", gender: .unknown),
User(name: "Maxim Vialyx", gender: .male),
User(name: "Guest", gender: .unknown)]
for user in users where user.gender == .unknown {
print("guest: \(user)")
}
/*
In this example we used 'where' keyword to filter users collection.
*/
// MARK: Using switch
for user in users {
switch user.gender {
case .male:
print("male: \(user)")
case .female:
print("female: \(user)")
default:
print("guest: \(user)")
}
}
/*
Simple switch usage example with enum switching
*/
// MARK: Using typle switching
for user in users {
switch (user.gender, user.name) {
case (.unknown, "Guest"):
print("guest: \(user)")
default:
break
}
}
/*
Typle switching (Gender, String).
Only users with .unknown gender and "Guest" name switched to guest case
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment