I think this use-case is too narrow for dedicated syntax in the standard library.
However, it should be simple enough for you to write your own function, let’s call it `unpack`, which produces a sequence that does what you want. While you’re at it you could also try writing a `cross` function that takes two collections and produces all tuples of their elements, perhaps using something like .lazy.map.zip internally, if you need that functionality. One great aspect of Swift is that it makes implementing things like this yourself readily achievable. Plus, once we get constrained extensions (extension Collection where Element: Collection) you should be able to do it that way too. Alternatively, you might consider whether your data structure itself is ideal or if you’d be better off flattening everything into, say, a single dictionary that takes a compound key. Nevin On Sun, Jul 17, 2016 at 6:05 AM, Maxim Bogdanov via swift-evolution < [email protected]> wrote: > Hello, community. > > As I understood from documentation the only way to iterate > multidimensional array or a dictionary (with for loop) is this: > > let multidimensionalDictionary = ["a":["b": "c"], "b":["c": "d"], "c": > ["d": "e"]] > for (key, value) in multidimensionalDictionary { > for (nestedKey, nestedValue) in value { > print("\(key) -> \(nestedKey) -> \(nestedValue)") > } > } > > What do you think about this syntax? > for (key, nestedKey, nestedValue) in multidimensionalDictionary { > print("\(key) -> \(nestedKey) -> \(nestedValue)") > } > > > -- > I'm new to mailing list feature. If I do something wrong please let me > know about it. > > Best regards, > Maxim > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
