std.algorithm.canFind behavior difference between arrays and elements

Seb seb at wilzba.ch
Fri Dec 7 19:12:31 UTC 2018


On Friday, 7 December 2018 at 18:51:27 UTC, Arun Chandrasekaran 
wrote:
> I'm trying to find the needle in the hay that's an array of 
> strings. So the second assert fails for some reason. Is this 
> expected? https://run.dlang.io/is/7OrZTA
>
> ```
> #!/usr/bin/rdmd
>
> void main()
> {
>     import std.experimental.all;
>     string s1 = "aaa111aaa";
>     string s2 = "aaa222aaa";
>     string s3 = "aaa333aaa";
>     string s4 = "aaa444aaa";
>     const hay = [s1, s2, s3, s4];
>     assert(canFind(s1, "111"));
>     assert(canFind(hay, "111"));
> }
> ```
>
> Why is there a difference in the behavior?

Alternatively to the answers above you can also use a custom 
lambda for canFind:

https://run.dlang.io/is/QOXYbe


More information about the Digitalmars-d-learn mailing list