d语言如何去样板.
如何去样板:
auto someRandomName = f(...);
//f返回包含两部分的元组
auto firstPart = someRandomName[0];
auto secondPart = someRandomName[1];
我会这样:
/// 按参数传递元组的成员给函数
template unpack(alias fun)
{
import std.typecons: isTuple;
auto unpack(T)(T args)
if (isTuple!T)
{
return fun(args.expand);
}
}
//这样用:
f(...).unpack!((firstPart, secondPart) {
// 用1,2部分
});
区间管道也可以:
auto nums = [1, 2, 3];
auto animals = ["lion", "tiger", "bear"];
zip(nums, animals)
.map!(unpack!((num, animal) => animal.repeat(num).joiner(" ")))
.each!writeln;
//...打印:
lion
tiger tiger
bear bear bear
浙公网安备 33010602011771号