Bya*_*kun 1 d variadic-functions
我想编写一个可变参数函数,它应该有1个参数,它不是string类型的可选参数,第二个字符串是可选的.我已经阅读了关于可变函数的语言规范,但考虑到D的许多选项,我想知道哪个是我问题的合适解决方案.
另外我应该如何使用强制转换和指针来复制指向的字符串void* _argptr(字符串在D中不可变的事实让我困惑).
编辑:我想要的是:
string foo (string nonopt, ...) { /*code*/ }
//...
string a = "x@a.t", b = "a.t";
auto s = foo(a);
auto s2 = foo(a, b);
Run Code Online (Sandbox Code Playgroud)
你所要求的并没有听起来有些变化.您确切地知道应该有多少个参数 - 1或2.在这种情况下,只需对第二个参数使用默认参数.例如
void func(string required, string optional = null) {}
Run Code Online (Sandbox Code Playgroud)
如果你想要的是string后跟未知数量的字符串,那么你可能想要做类似的事情
void func(string required, string[] optional...)
Run Code Online (Sandbox Code Playgroud)
另一方面,如果你想要的是string接下来是各种类型的未知数量的参数,那么你想要的是一个可变参数模板.
void func(T...)(string required, T optional) {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
734 次 |
| 最近记录: |