won*_*nce 1 types iterator rust
我通常需要在两个可迭代对象之间复制数据。除了slices的特殊情况,我在标准库中没有找到合适的函数,所以我尝试自己写一个:
fn copy(source: /* ? */, target: /* ? */) {
for (s, t) in source.zip(target) {
*t = s.clone();
}
}
Run Code Online (Sandbox Code Playgroud)
使该函数尽可能通用的数据类型的正确选择是什么?
Run Code Online (Sandbox Code Playgroud)s.clone()
这似乎不是很有用,因为它限制了您可以克隆的输入项。调用者可以只使用cloned()或copied()调整迭代器。
唯一真正必要的约束应该是您可以将源项目分配给目标项目。
我想它看起来像
s.clone()
Run Code Online (Sandbox Code Playgroud)
但坦率地说,对于极少数情况,我需要做这样的事情,我宁愿只编写命令式循环。