Skip to content

Instantly share code, notes, and snippets.

View vialyx's full-sized avatar
🎯
Focusing

Maxim Vialyx vialyx

🎯
Focusing
View GitHub Profile
let admins = [User(name: "Admin")]
// [{name "Admin"}]
let guests = [User(name: "Guest")]
// [{name "Guest"}]
var allUsers = admins + guests
// [{name "Admin"}, {name "Guest"}]
// TODO: - Iterate over the entire collection with the for-in loop:
for user in allUsers {
for (index, user) in allUsers.enumerated() {
print("User: \(user) at index: \(index)")
/*
User: User(name: "Admin") at index: 0
User: User(name: "Guest") at index: 1
*/
}
// MARK: - Comparable
extension User: Comparable {
static func <(lhs: User, rhs: User) -> Bool {
return lhs.name < rhs.name
}
static func ==(lhs: User, rhs: User) -> Bool {
return lhs.name == rhs.name
}
let incommingMessages: [String] = []
print("emptiness: \(incommingMessages.isEmpty)")
print("counting: \(incommingMessages.count == 0)")
let messageIDs = Array<Int>(1...1000000)
let contiguousMessageIDs = ContiguousArray<Int>(1...1000000)
var start = CFAbsoluteTimeGetCurrent()
messageIDs.reduce(0, +)
var end = CFAbsoluteTimeGetCurrent() - start
print("Array reduce Took \(end) seconds")
// "Array reduce Took 0.203467965126038 seconds\n"
start = CFAbsoluteTimeGetCurrent()
struct User {
let id: Int
let name: String
}
var users: Set<User> = []
// error: type 'User' does not confirm to protocol 'Hashable'
struct User {
let id: Int
let name: String
}
extension User: Hashable {
var hashValue: Int {
return id
}
var users: Set<User> = []
let user = User(id: 65, name: "Maxim Vialyx")
users.insert(user)
// (inserted true, {id 65, name "Maxim Vialyx"})
users.insert(user)
// (inserted false, {id 65, name "Maxim Vialyx"})
users.remove(user)
// Return removed user and Set now is empty Set([])
// TODO: - Use .isEmpty instead of .count
if allUsers.isEmpty {
print("User list is empty")
} else {
let user = allUsers.first
// NOT subscript. Set is unordered collection
// user = allUsers[0]
print("First user is: \(user)")
// "First user is: Optional(__lldb_expr_209.User(id: 654, name: "Chilly Mango"))\n"
}
// TODO: - Iterate over the entire with the for-in loop:
for user in allUsers {
print("User: \(user)")
/*
User: User(id: 654, name: "Chilly Mango")
User: User(id: 7, name: "Mike Biggles")
User: User(id: 234, name: "Midum Premium")
User: User(id: 99, name: "Jimmy Cho")
*/
}