> On Dec 17, 2016, at 9:43 PM, Mathew Sanders via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> I've just joined the list (hi!) so not sure if this has been discussed in the 
> past.
> 
> Curious to hear if a future version of Swift might ever include some sort of 
> pattern-matching extended to Arrays. Maybe something like the following:
> 
> let numbers: [Int]
>         
> switch numbers {
> case []:
>     // to match an empty array
>             
> case [1, 2, 3]:
>     // to match array with specific values
>             
> case [_, _, _]:
>     // to match array with 3 Ints
>             
> case let [first, last]:
>     // match a 2 element array and bind first and last elements
>             
> case let [first, next...]:
>     // to match array with at least one element
>     // bind first element, and bind other elements (could be empty)
>     // first: Int, next: [Int]            
> }
> 
> I love the pattern matching on tuples, and would love to see if extend to 
> Arrays as well, but not sure if it fits with future goals for the language.

Yeah, this is something I've wanted to add for a while, along with pattern 
matching for dictionaries, which together with array matching I think would 
make a lot of JSON/plist wrangling much more pleasant. Since it's an additive 
feature, it's taken a backseat to more pressing source- and ABI-breaking 
changes we've wanted to get out of the way first.

-Joe
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to