Rust - co oznacza symbol | przy argumencie funkcji?

Rust - co oznacza symbol | przy argumencie funkcji?

Wątek przeniesiony 2024-06-25 17:57 z Inne języki programowania przez Riddle.

  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
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

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

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

spartanPAGE
  • Rejestracja: dni
  • Ostatnio: dni
siloam
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
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)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.