复制http://forum.dlang.org/thread/[email protected]以比较答案速度:)
我基本上希望能够做这样的事情:auto result = map!( (a, b) => a+b )( lockstep(range1, range2) );
是否有任何标准的简短方法来包装输入范围
与opApply结构(哪个Lockstep是)?
另外,如何将Lockstep重新设计为适当的范围呢?我可以
发出请求请求,但不确定当前意图。
最佳答案
奖品是D.learn and Simen Kjaeraas:
使用std.range.zip代替:
auto result = map!( (a, b) => a+b )( zip(range1, range2) );
之所以有两种方式,是因为锁步与foreach一起使用效果更好:
foreach (a, b; lockstep(A, B) ) {
// Use a and b here.
}
与拉链对比:
foreach (a; zip(A, B) ) {
// Use a[0] and a[1] here.
}
有人建议更好地整合语言中的元组,
因此,将来zip可能具有锁步的所有优点(反之亦然
反之亦然),但不要交叉手指。
关于d - 使用std.range.Lockstep作为输入范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14082294/