Ad space (banner)
Lesson 18 / 20

Closures

This lesson covers the closure, an anonymous function you can assign to a variable.

A closure is written |args| { body } and can be defined on the spot. What makes it distinctive is that it can capture the variables around it.

The sample code creates the closure let add_tax = |price: i32| price + (price / 10); and uses it to add sales tax to several product prices.

A common early stumble is choosing between an ordinary function (fn) and a closure. A closure has the flexibility of capturing surrounding variables, and is the usual choice for handing a short piece of logic to a higher-order function such as map or filter.

In professional work, closures come up constantly alongside collection methods such as map, filter, and for_each.

๐Ÿ“– Reference code
โœ๏ธ Your code
Type your code, then press "Run"

๐Ÿงช This site can't compile or run Rust directly, so it checks on the spot whether what you typed matches the reference code (scoring happens entirely in your browser โ€” nothing is sent anywhere).

Ad space (banner)
Ad space (in-article)