Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

capture mode

How a closure holds a variable it uses: by borrowing it, borrowing it mutably, or taking it.

Each variable a closure uses is captured by shared reference, mutable reference, or by value, whichever is the least the body needs (unless move forces by value).

Loading interactive…

Examples

  • || println!("welcome to {shop}") borrows shop, || stamps += 1 borrows stamps mutably, and a body with let archived = receipt; takes receipt by value.

Read the full section →