【问题标题】:Why are iterators not copyable?为什么迭代器不可复制?
【发布时间】:2015-09-01 05:39:36
【问题描述】:

许多迭代器 implement the Clone trait,但没有一个 implement the Copy trait。至少对于像std:slice::Iter 这样的简单迭代器,the Clone implementation 无论如何看起来都像一个 memcpy,那么为什么 Copy 也没有实现呢?

【问题讨论】:

    标签: rust


    【解决方案1】:

    来自PR #20790:

    此 PR 还使迭代器不可隐式复制,因为这是库中细微错误的来源。您仍然可以使用clone() 显式复制迭代器。

    【讨论】:

    • 你能提供一个这些微妙错误的例子吗?
    • @Shepmaster:我想不出来。我认为这与将迭代器传递到 for 循环并进行修改有关,但未修改 original 迭代器。
    • 我找到了one example,验证了你的记忆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 2011-02-05
    • 2023-03-10
    • 1970-01-01
    • 2017-02-09
    • 2012-06-28
    • 2010-09-15
    相关资源
    最近更新 更多