Skip to content

Closures

Closures are functions that capture variables from their surrounding scope.

Basic Closure

let multiplier = 3;

let multiply_by = |x| => {
    return x * multiplier;  // Captures 'multiplier'
};

print multiply_by(5);   // 15
print multiply_by(10);  // 30

Closure Example

fn create_counter() {
    let count = 0;

    let increment = |_| => {
        count = count + 1;
        return count;
    };

    return increment;
}

let counter = create_counter();
print counter(0);  // 1
print counter(0);  // 2
print counter(0);  // 3