【发布时间】:2025-12-03 23:40:01
【问题描述】:
我正在尝试生成Vec<(Point, f64)>:
let grid_size = 5;
let points_in_grid = (0..grid_size).flat_map(|x| {
(0..grid_size)
.map(|y| Point::new(f64::from(x), f64::from(y)))
.collect::<Vec<Point>>()
});
let origin = Point::origin();
let points_and_distances = points_in_grid
.map(|point| (point, point.distance_to(&origin)))
.collect::<Vec<(Point, f64)>>();
我收到以下错误:
use of moved value: point
我知道我不能在元组的两个元素中都使用point,但是当我尝试存储引用时,我收到关于生命周期的错误。
【问题讨论】:
-
您能否提供一个完整的可编译(即使有错误)示例,最好在 play.rust-lang.org 上运行?更容易确定您遇到了什么错误,在哪里,并提出修复建议。
标签: rust closures borrow-checker borrowing