Discussion Thread: DIP 1030--Named Arguments--Final Review
Jonathan Marler
johnnymarler at gmail.com
Wed May 13 19:57:50 UTC 2020
On Wednesday, 13 May 2020 at 19:44:32 UTC, Jonathan Marler wrote:
> On Wednesday, 13 May 2020 at 19:31:24 UTC, Steven Schveighoffer
> wrote:
>> On 5/13/20 3:30 PM, Walter Bright wrote:
>>> On 5/13/2020 12:55 AM, Jacob Carlborg wrote:
>>>> Regarding renaming parameters will break the API. Swift
>>>> supports giving a different name which are used locally:
>>>>
>>>> func copy(_ source: String, to destination: String)
>>>>
>>>> Should be called like this:
>>>>
>>>> copy("foo", to: "bar")
>>>>
>>>> `_` indicates that the argument can not be named when
>>>> calling the function.
>>>
>>> In D, we do:
>>>
>>> void copy(string, string destination);
>>
>> And how does the implementation of copy use that first
>> parameter?
>>
>> -Steve
>
> I found a way:
>
> void copy(string, string destination)
> {
> alias source = _param_0;
> }
>
> I didn't realize you could do this till now but this allows
> functions to "opt-out" of using named parameters. We may want
> to consider using this pattern throughout phobos/druntime when
> we want want to prevent parameter names from being apart of the
> API.
I've created a PR to use this pattern in some of the functions in
std.math: https://github.com/dlang/phobos/pull/7480
Let's see what the community thinks about this pattern and if it
should be adopted by druntime/phobos in anticipation of enabling
named parameters.
More information about the Digitalmars-d
mailing list