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

move closure

A closure marked move, which takes ownership of every variable it uses.

A move closure captures every variable it uses by value (copying Copy types), so it can outlive the scope where it was created.

Examples

  • thread::spawn(|| println!("{name}")) fails with E0373 because the closure only borrows name; thread::spawn(move || println!("{name}")) compiles.

Read the full section →