结论是: 由于println!中只需要获取变量的不可变引用就可以了,因此不发生所有权转移。 更深入一下,Rust中哪些类型在什么时机会发生所有权转移呢,这是值得深入总结的问题。 引子 先从一个例子说起,看如下代码: 结论写在前面 目前版本,Rust 不允许实现了 Drop trait 的类型包含指向自身的引用(如果未实现 Drop trait 则允许。而闭包类型 Box 这样的 trait object 都实现了 Drop) 即使没有上述限制,允许类型中保存的闭包捕获实例自身的引用,会潜在地允许数据竞争,因此在 Rust 中需要加锁 [1] ——为了提供自由度引入这种运行期开销加上死锁风险是否值得,需要打一个问号 ... 知乎,中文互联网高质量的问答社区和创作者聚集的原创内容平台,于 2011 年 1 月正式上线,以「让人们更好的分享知识、经验和见解,找到自己的解答」为品牌使命。知乎凭借认真、专业、友善的社区氛围、独特的产品机制以及结构化和易获得的优质内容,聚集了中文互联网科技、商业、影视、时尚、文化等领域最具创造力的人群,已成为综合性、全品类、在诸多领域 ... In addition: Warning messages: 1: In lm.fit(x = ys.lagged, y = yendog) : NA s introduced by coercion 2: In lm.fit(x = ys.lagged, y = yendog) : NA s introduced by coercion