gpt4 book ai didi

rust - 从 Vec uint> 调用过程

转载 作者:行者123 更新时间:2023-11-29 08:00:03 26 4
gpt4 key购买 nike

尝试在 Rust array of functions 上回答问题时(得到了很好的回答),我创造了以下代码:

fn main() {
let mut a : Vec<proc() -> uint>;
for i in range(0u, 11) {
a[i] = proc(){i};
}
println!("{} {} {}", a[1](), a[5](), a[9]());
}

请忽略 proc 被弃用的事实,我只是发现应该使用它而不是闭包(我不知道 move 和当时未装箱的闭包)。

但是,由于以下原因,我无法调用向量的元素:

 <anon>:6:26: 6:30 error: cannot move out of dereference (dereference is implicit, due to indexing)
<anon>:6 println!("{} {} {}", a[1](), a[5](), a[9]());

这个错误是什么意思?它不应该只返回 uint 吗?

最佳答案

proc()是只能使用一次的闭包,因此调用它们消耗了它们。

在您的情况下,这意味着将闭包移出 Vec<>为了使用它,这是不可能的,因为索引是对 & 的取消引用指针,它只允许不可变访问。

关于rust - 从 Vec<proc() -> uint> 调用过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27492461/

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