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