startsWith using an array of needles

Byron byron.heads at gmail.com
Tue Aug 20 10:14:08 PDT 2013


On Tuesday, 20 August 2013 at 16:51:35 UTC, Jonathan M Davis 
wrote:
> On Tuesday, August 20, 2013 17:58:19 Byron wrote:
>> I am trying to use startsWith with an array of needles. Failes
>> with not being able to match any functions. Not sure if there 
>> is
>> a work around.
>> 
>> const auto ignore = [".git/", ".gitignore"];
>> 
>> foreach(DirEntry e; getcwd.dirEntries(SpanMode.depth).filter!(a
>> => !a.name.startsWith(ignore))) {
>> writeln(e.name);
>> }
>
> startsWith dosen't take an array of needles. It takes a 
> variadic list of them.
> So, it needs to be something more like
>
> !a.name.startsWith(".git/", ".gitignore")
>
> If you want to save the list though, you can use 
> std.typetuple.TypeTuple and
> an alias:
>
> alias TypeTuple!(".git/", ".gitignore") ignore;
>
> At that point, the rest of your code should work as-is.
>
> - Jonathan M Davis

What if I want to load my ignore list from a file?


More information about the Digitalmars-d-learn mailing list