Rust 编译器错误错误
E0373E0373 — 闭包可能比捕获的变量存活更久
闭包捕获了一个引用,但该引用的生命周期可能不够长。
rustcargo
导致此错误的原因
闭包借用了一个局部变量,但闭包的生命周期可能超过该变量的作用域。在将闭包传递给线程或存储到结构体时,这种情况很常见。
如何修复
使用 move 关键字转移所有权:move || { ... }。如需保留原始变量,请在闭包前克隆它。确保被捕获的数据在闭包的整个生命周期内有效。
相关错误代码
Rust 编译器错误错误
E0308E0308 — 类型不匹配
期望的类型与实际提供的类型不符。
rustcargo
查看详情 Rust 编译器错误错误
E0658E0658 — 使用了不稳定特性
在未启用 feature gate 的情况下使用了 Rust 中尚未稳定的特性。
rustcargo
查看详情 Rust 编译器错误错误
E0317E0317 — if 表达式可能缺少 else 子句
作为值使用的 if 表达式缺少 else 分支。
rustcargo
查看详情 Rust 编译器错误错误
E0119E0119 — trait 实现冲突
同一类型存在两个或多个相同 trait 的实现。
rustcargo
查看详情 Rust 编译器错误错误
E0277E0277 — Trait 约束未满足
某类型未实现所要求的 trait。
rustcargo
查看详情 Rust 编译器错误错误
E0425E0425 — 在当前作用域中找不到该值
使用了一个在当前作用域中未定义的标识符。
rustcargo
查看详情