gpt4 book ai didi

types - 什么是正确的数据类型,以使函数能够在Rust的迭代器之间复制,并且功能尽可能广泛?

转载 作者:行者123 更新时间:2023-12-03 11:32:35 25 4
gpt4 key购买 nike

我通常需要在两个可迭代对象之间复制数据。除了special case of slices之外,我在标准库中找不到合适的函数,因此我尝试编写自己的函数:

fn copy(source: /* ? */, target: /* ? */) {
for (s, t) in source.zip(target) {
*t = s.clone();
}
}
什么是正确的数据类型选择,以使此功能尽可能地通用?

最佳答案

s.clone()

这似乎没有什么用,因为它限制了您输入可输入的内容。调用者可以只使用 cloned()copied()来调整迭代器。
唯一真正必要的约束条件是您可以将源项目分配给目标项目。
我想看起来像
fn copy<S, SI, T, TI>(source: S, target: T)
where
S: Iterator<Item = SI>,
T: Iterator<Item = TI>,
TI: DerefMut<Target = SI>,
{
for (s, mut t) in source.zip(target) {
*t = s;
}
}
但坦率地说,在极少数情况下,我需要做这样的事情,我宁愿只写命令式循环。

关于types - 什么是正确的数据类型,以使函数能够在Rust的迭代器之间复制,并且功能尽可能广泛?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63792727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com