GoForum🌐 V2EX

如何理解 rust 闭包的借用值机制? 被借用的值在闭包内到底是什么类型?

kyonn · 2026-05-14 15:25 · 0 次点赞 · 2 条回复

如下最简单的一个闭包代码, 外部 let 定义的 name 类型是 String, 那么根据 rust 闭包的借用值机制, 闭包内使用的 name 是对外部的引用, 那么闭包表达式内的 name 类型应该是 &String 才对, 包括 AI 也是这么回答的.

但是我用 rust 的代码去打印闭包内的 name 类型, 以及 VSCode rust-lang.rust-analyzer 分析显示 name 类型都是 String.

let name = String::from("hello");

let f1 = || println!("{}", name);

2 条回复
xtreme1 · 2026-05-14 15:25
#1

warning: unused variable: name

kyonn · 2026-05-14 15:25
#2

@xtreme1 不好意思, 之间主题没编辑完整就发出来了.

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: kyonn
发布: 2026-05-14
点赞: 0
回复: 0