0
我经历了D language tour,当我到Functions开始怀疑是否有调用一个函数,例如:跳过在d默认的参数
import std.stdio;
void greet(string greeting = "Hello", string subject = "World")
{
writefln("%s %s", greeting, subject);
}
void main()
{
greet();
greet("Howdy");
greet("Hello", "D"); // duplicating default "Hello"
// greet(, "D"); // Error: expression expected, not ','
}
我当是跳过默认参数的方式我已经看过How to enter by-name argument to a function in D?,所以我知道你不能通过名字传递参数,除此之外找不到任何提及这样的功能,所以要求确保我没有错过任何东西,并且有明确的答案在互联网上的某个地方。
如果在默认值可用时不能跳过传递参数,那么避免重复默认值的最佳做法是什么?
d没有命名的参数。我想你可以想出一个解决方案来生成所有的子函数,但现在常见的解决方案是传入一个结构体。从长远来看,这个DIP可能对你很有趣:https://github.com/dlang/DIPs/pull/71 – greenify