gpt4 book ai didi

rust - 取消引用 Rust 中的引用向量

转载 作者:行者123 更新时间:2023-12-03 11:44:14 26 4
gpt4 key购买 nike

如果我有一个引用向量,我可以这样做:

references.into_iter().map(|x| *x).collect::<Vec<_>>();
有没有短手可以做到这一点?用 hoogle 很容易回答。 - 类似搜索引擎,但我找不到 Rust 的搜索引擎。
相关地,我也很好奇是否有相反操作的简写:
objects.iter().collect::<Vec<_>>()

最佳答案

可能没有与您想要的完全一样的操作。您可以clone()向量,但这只会给你另一个具有相同引用的向量。如果你想转换向量元素,你应该使用迭代器接口(interface)来做,因为毕竟你可能不想将结果保存到向量中。如果您确实想要向量中的结果 - 好吧,这就是 collect()是为了。
说了这么多,这里有一些方法可以使它更短:

  • 您可以替换 map(|x| *x)copied() .
  • 如果要从函数返回向量,则不需要显式 ::<Vec<_>> “turbofish”,因为该函数将说明返回类型,Rust 将能够推断出它。
  • 你甚至不需要明确的 return如果它是函数中的最后一个表达式。

  • 结合以上,可以替换 return references.into_iter().map(|x| *x).collect::<Vec<_>>();references.into_iter().copied().collect() ,它明显更短,尽管可能不完全是你所追求的。

    关于rust - 取消引用 Rust 中的引用向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65280284/

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