我重申需要连接格式字符串,并且想知道在D中写入flfln()函数之外连接字符串的最短(或最容易阅读)的方法是什么?
也就是说,我喜欢writefln的行为,例如你可以做的事情:
// Some code to init y="2013", m="01", d="02" ...
writefln("%s-%s-%s", y, m, d);
Run Code Online (Sandbox Code Playgroud)
...但我想这样做而不在stdout上写出来.有同样简单的方法吗?
我发现的唯一想法是std.string中的format函数,但是这需要你提供预定义长度的字符串缓冲区作为第一个参数,这在大多数时候都很不方便.
我发现的另一个选择是(通过在std.array中使用"join"):
// Some code to init y="2013", m="01", d="02" ...
datestr = [y, m, d].join("-");
Run Code Online (Sandbox Code Playgroud)
...这非常方便,但只有当你使用相同的"分隔符"时才有效.
更常见的方法是,这比上面的示例短,并且不需要提供预定义长度的缓冲区字符串?
小智 15
你似乎混淆format使用sformat.format完全符合你的要求:
datestr = format("%s-%s-%s", y, m, d);
Run Code Online (Sandbox Code Playgroud)
更好的是:在编译时而不是运行时捕获格式字符串和参数之间的潜在不匹配:
datestr = format!"%s-%s-%s"(y, m, d);
Run Code Online (Sandbox Code Playgroud)
连接字符串的最基本方法是~:
datestr = y ~ "-" ~ m ~ "-" ~ d;
Run Code Online (Sandbox Code Playgroud)
更多内容:http://dlang.org/arrays.html#array-concatenation
| 归档时间: |
|
| 查看次数: |
3522 次 |
| 最近记录: |