You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用匿名Lambda函数重写Rust中接收可变引用的递增函数?

用Rust闭包替代命名函数实现变量递增

你提供的示例代码里已经包含了正确的实现方式,只需要取消注释并调整格式即可。具体可运行代码如下:

fn main() {
    let mut n = 0;
    let mut inc = || n += 1;

    inc(); // 直接调用闭包递增n
    println!("n = {}", n); // 输出 "n = 1"

    inc();
    println!("n = {}", n); // 输出 "n = 2"

    inc();
    println!("n = {}", n); // 输出 "n = 3"
}

关键说明:

  • 闭包|| n += 1会自动捕获外部变量n的可变引用(因为要修改n的值),这类闭包属于FnMut trait类型,要求闭包本身必须是可变绑定,所以必须用let mut inc来声明闭包变量。
  • 相比原来的命名函数,闭包通过捕获机制直接关联了目标变量n,无需每次调用时手动传递可变引用,完全实现了你想要的简洁调用方式。

内容的提问来源于stack exchange,提问作者Arina Medvedeva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 19:03:31