map on char[] converts to dchar?

Seb via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jul 24 02:12:01 PDT 2017


On Monday, 24 July 2017 at 09:05:43 UTC, Johan wrote:
> Hi all,
>   What am I doing wrong here?
> ```
> import std.algorithm;
> int foo(char c) {
>     return 123;
> }
> auto mapFoo(char[] chars) {
>     return chars.map!(a => a.foo);
> }
> ```
> errors with:
> main.d(14): Error: function main.foo (char c) is not callable 
> using argument types (dchar)
> /Library/D/dmd/src/phobos/std/algorithm/iteration.d(492):
>  instantiated from here: MapResult!(__lambda2, char[])
> main.d(14):        instantiated from here: map!(char[])
>
> (Things work after changing foo to accept dchar, but I don't 
> want that.)
>
> Thanks,
>   Johan

Have a look at https://tour.dlang.org/tour/en/gems/unicode

tl;dr: it's auto-decoding and you can avoid it with e.g. byChar


More information about the Digitalmars-d-learn mailing list