Flag & byLine confusion.
Rekel
paultjeadriaanse at gmail.com
Sun Dec 20 15:18:44 UTC 2020
On Sunday, 20 December 2020 at 15:04:29 UTC, Steven Schveighoffer
wrote:
> On 12/20/20 9:07 AM, Rekel wrote:
>> Does this mean other flag yes's will not be accepted?
>
> The long and short of it is that Flag is supposed to make you
> NAME what your flag is for.
>
> The idea is to prevent things like:
>
> byLine(true);
>
> Reading the code, what does "true" mean? You have to look up
> the documentation to see what it is. And then you might have
> things like:
>
> foo(true, true, false, true);
>
> What do all those mean?
>
> Instead, you have to name what the flag is for:
>
> byLine(KeepTerminator.yes);
>
> The Yes/No structs and Flag structs are there to help you name
> your flag, and have some awkward D way to do this.
>
> This will likely all go away in the future with named
> parameters (deprecating Flag is one of the reasons named
> parameters were proposed/accepted).
>
> I personally avoid Flag in my code because I think it's awkward
> and cumbersome.
>
> -Steve
With named parameters, do you refer to python-esque function
calls?
That makes a lot more sense to me personally, although I'm only
just learning D, as I likewise wouldnt use `Number!"Wheels".4`
for a function call.
By the way, where can I see Flag is (/ will be?) deprecated? It
doesn't show in the library reference, however I may be looking
in the wrong place.
More information about the Digitalmars-d-learn
mailing list