top | item 17041918

(no title)

jmhain | 7 years ago

Is it possible to match the end of a slice with slice patterns? Something like:

    fn foo(s: &[char]) {
        match s {
            ['a', 'b'] => (),
            [.. 'b', 'c'] => (),
            _ => (),
        }
    }

discuss

order

steveklabnik|7 years ago

Not today, but it's coming. This kind of thing does work on nightly.

Lev1a|7 years ago

I was mostly excited about slice patterns because of a pattern I wanted to be able to write:

    some_collection.windows(2).filter(|[a,b]|a==b).map(|[a, _] |a).collect();
Turns out the compiler rejects that with a "refutable pattern" error, because the args part of the filter/map closures do not handle the situation where the slice could be empty, which AFAIK can not occur when using windows/chunks/...

Maybe there has to be some special case handling for this pattern to be valid?