MG
Size: a a a
MG
MG
🅰Б
🅰Б
🅰Б
let data = ["Anton", "Anna", "John", "Caesar"]
var letters: [Character]
letters = data.map { name in
return name[name.startIndex]
}
letters = letters.sorted()
letters = letters.reduce([], { (list, name) -> [Character] in
if !list.contains(name) {
return list + [name]
}
return list
})
// Build contacts array:
var contacts = [Character: [String]]()
for entry in data {
if contacts[entry[entry.startIndex]] == nil {
contacts[entry[entry.startIndex]] = [String]()
}
contacts[entry[entry.startIndex]]!.append(entry)
}
for (letter, list) in contacts {
contacts[letter] = list.sorted()
}MG
let data = ["Anton", "Anna", "John", "Caesar"]
var letters: [Character]
letters = data.map { name in
return name[name.startIndex]
}
letters = letters.sorted()
letters = letters.reduce([], { (list, name) -> [Character] in
if !list.contains(name) {
return list + [name]
}
return list
})
// Build contacts array:
var contacts = [Character: [String]]()
for entry in data {
if contacts[entry[entry.startIndex]] == nil {
contacts[entry[entry.startIndex]] = [String]()
}
contacts[entry[entry.startIndex]]!.append(entry)
}
for (letter, list) in contacts {
contacts[letter] = list.sorted()
}ЮБ
let data = ["Anton", "Anna", "John", "Caesar"]
var letters: [Character]
letters = data.map { name in
return name[name.startIndex]
}
letters = letters.sorted()
letters = letters.reduce([], { (list, name) -> [Character] in
if !list.contains(name) {
return list + [name]
}
return list
})
// Build contacts array:
var contacts = [Character: [String]]()
for entry in data {
if contacts[entry[entry.startIndex]] == nil {
contacts[entry[entry.startIndex]] = [String]()
}
contacts[entry[entry.startIndex]]!.append(entry)
}
for (letter, list) in contacts {
contacts[letter] = list.sorted()
}v
struct Profile: Codable {
let cash: String
init(from decoder: Decoder) throws {
let val = try decoder.container(keyedBy: CodingKeys.self)
if let c = try? val.decode(String.self, forKey: .cash) {
cash = c
} else {
cash = try String(val.decode(Double.self, forKey: .cash))
}
}А
struct Profile: Codable {
let cash: String
init(from decoder: Decoder) throws {
let val = try decoder.container(keyedBy: CodingKeys.self)
if let c = try? val.decode(String.self, forKey: .cash) {
cash = c
} else {
cash = try String(val.decode(Double.self, forKey: .cash))
}
}ЮБ
struct User: Codable {
var username: String?
var usernames: [String]?
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
username = try? values.decode(String.self, forKey: .username)
usernames = try? values.decode([String].self, forKey: .username)
}
}А
struct User: Codable {
var username: String?
var usernames: [String]?
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
username = try? values.decode(String.self, forKey: .username)
usernames = try? values.decode([String].self, forKey: .username)
}
}ЮБ