Rust - co oznacza symbol | przy argumencie funkcji?

0

Czesc, ogarniam troche ostatnio Rusta i w takim kawalku kodu:

while let Some(e) = events.next(&mut window) {
        if let Some(args) = e.render_args() {
            gl.draw(args.viewport(), |c, g| {
                    graphics::clear([1.0; 4], g);
                }
            );
        };
        if let Some(Button::Keyboard(key)) = e.press_args() {
            println!("Pressed keyboard key '{:?}'", key);
        };
    }

nie mam pojecia co oznaczaja | przy argumentach funkcji

gl.draw(args.viewport(), |c, g|

te 'c' i 'g' nie sa nigdzie wczesniej deklarowane.

1

| | otaczają argumenty funkcji anonimowej (pot. lambdy). W rustbyexample błędnie podają, że nazywa się to również domknięciami. Mechanizmy domknięcia mogą być realizowane także przez zwykłe funkcje, a nie tylko przez funkcje anonimowe. Zob. https://pl.wikipedia.org/wiki/Domkni%C4%99cie_(programowanie)

1 użytkowników online, w tym zalogowanych: 0, gości: 1