三个方法解决error: use of moved value
https://www.tuicool.com/articles/UfIvemA 2015 年 6 月 4 日 概述 “error: use of moved value”,相信最近开始玩rust的同学看到这个报错都能会心一笑了。 rust做到了不依赖运行期垃圾回收的安全内存管理,但这个特别爽快的特性也引入了一些不便,这报错就是常见的麻烦之一。 这报错要是想展开说清楚,需要完整解释rust的ownership、borrowing、lifetime等概念,那是一篇太长的文章。 我们先暂时放下概念,用三个不同的方法动手解决这个报错。 错误 我们以下面这段程序为基础展开我们的讨论,这里面主要定义的就是一个Info结构体。 struct Info { s: String, } fn fn_a(info: Info) { println!("in fn_a"); } fn main() { let foo = Info {s : "abc".to_string() }; fn_a(foo); } 首先,我们要制造出报错“use of moved value”。很简单,我们只需要以foo为参数再调用一次fn_a()就好。 struct Info { s: String, } fn fn_a(info: Info) { println!("in fn_a"); } fn main() { let