Menu
Coddy logo textTech

Domknięcia z parametrami

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 61 z 66.

Chociaż domknięcia, które nie przyjmują żadnych parametrów, są przydatne, przez większość czasu będziesz chcieć przekazywać dane do domknięć, aby uczynić je bardziej elastycznymi i potężniejszymi. Dodawanie parametrów do domknięć odbywa się według tego samego wzorca, którego nauczyłeś się wcześniej, ale z wartościami wewnątrz pionowych kresek.

Oto jak definiujesz domknięcie, które przyjmuje jeden parametr:

let add_one = |x: i32| x + 1;

Zauważ, że parametr x znajduje się między pionowymi kreskami, tak jak parametry funkcji. Następnie możesz wywołać to domknięcie, przekazując wartość:

let add_one = |x: i32| x + 1;
let result = add_one(5); // result wynosi 6

W przypadku funkcji domknięcia z wieloma parametrami oddziel je przecinkami:

let multiply = |x: i32, y: i32| x * y;
let result = multiply(3, 4); // result wynosi 12
challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa dane wejściowe. Pierwsze to liczba, a drugie również jest liczbą. Utwórz domknięcie, które przyjmuje dwa parametry i oblicza potęgę (pierwszy parametr podniesiony do potęgi równej drugiemu parametrowi). Zapisz domknięcie w zmiennej, wywołaj je z wartościami wejściowymi i wypisz wynik.

Wymagania:

  • Wczytaj pierwsze dane wejściowe (podstawę potęgi) i usuń białe znaki
  • Przekonwertuj je na i32
  • Wczytaj drugie dane wejściowe (wykładnik) i usuń białe znaki
  • Przekonwertuj je na u32
  • Utwórz domknięcie z dwoma parametrami, które oblicza potęgę za pomocą metody .pow()
  • Zapisz domknięcie w zmiennej
  • Wywołaj domknięcie z obiema wartościami wejściowymi
  • Wypisz wynik

Dane wejściowe:

  • Pierwszy wiersz: liczba będąca podstawą potęgi (np. 2)
  • Drugi wiersz: wykładnik (np. 3)

Wynik:

  • Wynik obliczenia potęgi

Spróbuj swoich sił

use std::io;

fn main() {
    // Odczytaj pierwszą wartość wejściową (podstawę potęgi)
    let mut base_input = String::new();
    io::stdin().read_line(&mut base_input).expect("Failed to read line");
    let base: i32 = base_input.trim().parse().expect("Invalid number");
    
    // Odczytaj drugą wartość wejściową (wykładnik)
    let mut exp_input = String::new();
    io::stdin().read_line(&mut exp_input).expect("Failed to read line");
    let exponent: u32 = exp_input.trim().parse().expect("Invalid number");
    
    // TODO: Utwórz domknięcie obliczające potęgę i zapisz je w zmiennej
    // TODO: Wywołaj domknięcie z argumentami base i exponent
    
    // Wypisz wynik
    println!("{}", result);
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Rust online