Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save asmallteapot/5bef591b22ef59f7a27bd1d3a0a8ff8f to your computer and use it in GitHub Desktop.
Save asmallteapot/5bef591b22ef59f7a27bd1d3a0a8ff8f to your computer and use it in GitHub Desktop.
Swift: Append an element to an array in a dictionary value, creating the array/value if needed
import Foundation
extension Dictionary where Value: RangeReplaceableCollection {
public mutating func append(element: Value.Iterator.Element, toValueOfKey key: Key) -> Value? {
var value: Value = self[key] ?? Value()
value.append(element)
self[key] = value
return value
}
}
var books: [String: [String]] = [
"Phillip K Dick": [
"Do Androids Dream of Electric Sheep?",
"The Man in the High Castle",
],
"Cory Doctorow": [
"Down and Out in the Magic Kingdom",
"Makers",
]
]
books.append(element: "Eastern Standard Tribe", toValueOfKey: "Cory Doctorow")
books
/*
[
"Phillip K Dick": [
"Do Androids Dream of Electric Sheep?",
"The Man in the High Castle",
],
"Cory Doctorow": [
"Down and Out in the Magic Kingdom",
"Makers",
"Eastern Standard Tribe",
]
]
*/
books.append(element: "Parable of the Sower", toValueOfKey: "Octavia Butler")
books
/*
[
"Phillip K Dick": [
"Do Androids Dream of Electric Sheep?",
"The Man in the High Castle",
],
"Cory Doctorow": [
"Down and Out in the Magic Kingdom",
"Makers",
"Eastern Standard Tribe",
],
"Octavia Butler": [
"Parable of the Sower",
]
]
*/
@Fazlis
Copy link

Fazlis commented Mar 28, 2023

if you want add element in [String] to your dictionary like [String : [String]] use methods @AtishPapa. That methods helped me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment