51 lines
992 B
Swift
51 lines
992 B
Swift
|
|
import Foundation
|
||
|
|
|
||
|
|
struct Person: Codable {
|
||
|
|
let id: Int
|
||
|
|
let name: String
|
||
|
|
let email: String
|
||
|
|
let active: Bool
|
||
|
|
|
||
|
|
init(id: Int, name: String, email: String, active: Bool = true) {
|
||
|
|
self.id = id
|
||
|
|
self.name = name
|
||
|
|
self.email = email
|
||
|
|
self.active = active
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
class Repository<T> {
|
||
|
|
private var items: [Int: T] = [:]
|
||
|
|
|
||
|
|
func add(key: Int, item: T) {
|
||
|
|
items[key] = item
|
||
|
|
}
|
||
|
|
|
||
|
|
func find(key: Int) -> T? {
|
||
|
|
return items[key]
|
||
|
|
}
|
||
|
|
|
||
|
|
func getAll() -> [T] {
|
||
|
|
return Array(items.values)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func add(_ a: Int, _ b: Int) -> Int {
|
||
|
|
return a + b
|
||
|
|
}
|
||
|
|
|
||
|
|
enum Result<T> {
|
||
|
|
case success(T)
|
||
|
|
case failure(Error)
|
||
|
|
}
|
||
|
|
|
||
|
|
let repo = Repository<Person>()
|
||
|
|
repo.add(key: 1, item: Person(id: 1, name: "Alice", email: "alice@example.com"))
|
||
|
|
repo.add(key: 2, item: Person(id: 2, name: "Bob", email: "bob@example.com"))
|
||
|
|
|
||
|
|
for person in repo.getAll() {
|
||
|
|
print("\(person.name) <\(person.email)>")
|
||
|
|
}
|
||
|
|
|
||
|
|
print("3 + 4 = \(add(3, 4))")
|