[swift-evolution] Pattern matching with Arrays

Mathew Sanders mathew.sanders at gmail.com
Sat Dec 17 23:43:49 CST 2016

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20161218/d6f6bac3/attachment.html>

More information about the swift-evolution mailing list