std.algorithm.canFind behavior difference between arrays and elements

Arun Chandrasekaran aruncxy at gmail.com
Fri Dec 7 19:14:50 UTC 2018


On Friday, 7 December 2018 at 19:12:31 UTC, Seb wrote:
> 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

That's elegant!


More information about the Digitalmars-d-learn mailing list