Czy istnieje odpowiednik dla natywnego języka Swift Dictionary
na [NSDictionary initWithObjects: forKeys:]
?Swift jest odpowiednikiem `[NSDictionary initWithObjects: forKeys:]`
Powiedz, że mam dwie tablice z kluczami i wartościami i chcę umieścić je w słowniku. W Objective-C, zrobiłbym to tak:
NSArray *keys = @[@"one", @"two", @"three"];
NSArray *values = @[@1, @2, @3];
NSDictionary *dict = [[NSDictionary alloc] initWithObjects: values forKeys: keys];
Oczywiście mogę iteracyjne z licznikiem przez obu tablicach, użyj var dict: [String:Int]
i dodać rzeczy krok po kroku. Ale to nie wydaje się być dobrym rozwiązaniem. Korzystanie z zip
i jest prawdopodobnie lepszym sposobem na powtórzenie obu w tym samym czasie. Jednak to podejście oznacza posiadanie zmiennego słownika, a nie niezmiennego.
let keys = ["one", "two", "three"]
let values = [1, 2, 3]
// ???
let dict: [String:Int] = ["one":1, "two":2, "three":3] // expected result
Definiowanie '+' jako operatora do użycia nie ma większego znaczenia. Każda inna nazwa funkcji byłaby bardziej oczywista. – orkoden
Z jednej strony '+' ma znaczenie semantyczne, ponieważ dodaje nowy element do słownika, z drugiej strony może również zastąpić zamiast dodawać, więc jego efekt może nie zawsze być kumulowany. Osobiście uważam, że jest wystarczająco znaczący; może to być tylko ja, choć :) – Cristik