On Fri, 09 Jan 2015 07:10:14 +0000 FrankLike via Digitalmars-d-learn <[email protected]> wrote:
> On Thursday, 8 January 2015 at 15:15:59 UTC, Robert burner
> Schadek wrote:
> >
> > use canFind like such:
> > bool a = canFind(strs,s) >= 1;
> >
> > let the compiler figger out what the types of the parameter are.
>
> canFind is work for such as :
> bool x = canFind(["exe","lib","a","dll"],"a" );
> but can't work for canFind(["exe","lib","a","dll"],"hello.lib");
>
> So I very want to let the function 'indexOfAny' do the same work.
>
> Thank you.
>
> Frank
be creative! ;-)
import std.algorithm, std.stdio;
void main () {
string fname = "hello.exe";
import std.path : extension;
if (findAmong([fname.extension], [".exe", ".lib", ".a", ".dll"]).length) {
writeln("got it!");
} else {
writeln("alas...");
}
}
note the dots in extension list.
yet you can do it even easier:
import std.algorithm, std.stdio;
void main () {
string fname = "hello.exe";
import std.path : extension;
if ([".exe", ".lib", ".a", ".dll"].canFind(fname.extension)) {
writeln("got it!");
} else {
writeln("alas...");
}
}
as you obviously interested in extension here -- check only that
part! ;-)
signature.asc
Description: PGP signature
