Razumevanje funkcij v Rustu

Razumevanje funkcij v Rustu
Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Funkcije so bistveni programski konstrukti, saj postavljajo temelje za ponovno uporabnost kode in olajšajo modularno programiranje. Funkcije so samostojni bloki kode, ki izvajajo določene naloge. Lahko prejmejo vhodne podatke v obliki argumentov in vrnejo vrednost.





Rust ponuja funkcije za organizacijo kode, enkapsulacijo in ponovno uporabnost kode.





MAKEUSEOF VIDEO DNEVA

Definiranje funkcij v Rust

  Predogled funkcij Jetbrains Rust

Funkcije rje so podobne funkcije v katerem koli drugem programskem jeziku , čeprav obstajajo majhne razlike, ki jih boste morali razumeti.





Funkcije za svoje programe Rust boste definirali z fn ključna beseda, ki ji sledijo ime funkcije, neobvezni argumenti in neobvezen povratek tip podatkov .

 // function that neither takes in arguments nor returns a value 
fn function_name() {
    // function body here
}

Tukaj je preprosta funkcija Rust, ki ne sprejme nobenih argumentov ali vrne vrednosti.



kako priključiti bluetooth slušalke na xbox
 fn a_function(){ 
    let x = 3;
    println!("{}", x)
}

a_funkcija je preprosta funkcija Rust, ki natisne spremenljivko x .

Podpisi funkcij Rust

Funkcijski podpisi so način poimenovanja funkcij ter opisovanja njihovih argumentov in vrnjenih vrst, ne da bi vključili telo funkcije. Podpisi funkcij so uporabni za dokumentiranje API-jev knjižnic Rust.





Tukaj je primer podpisa funkcije Rust:

 fn name() 

fn greet(name: &str)

The ime funkcija je minimalen funkcijski podpis, medtem ko je pozdraviti podpis določa, da funkcija sprejme en argument, ime , vrste niz ( &str ).





Deklaracija funkcij z argumenti in vrnjenimi vrednostmi

Funkcije Rust lahko sprejmejo veliko argumentov, omejitev pa ni izrecno definirana. Funkcije z argumenti so na splošno bolj prilagodljive, saj lahko sprejemajo vrednosti iz drugih funkcij in delov kode.

Tukaj je tipičen model funkcije Rust, ki sprejema argumente:

 fn function_name(arg: type, arg2: type) { 
    // function body here
}

Vrsta argumenta funkcije je lahko vgrajena vrsta Rust ali vrsta po meri iz vašega programa.

Tukaj je primer preproste funkcije, ki kot argumenta sprejme dve celi števili:

 fn add_numbers(x: i32, y: i32) { 
    println!("{}", x + y);
}

The dodaj_števila funkcija sprejme dve 32-bitni celi števili in natisne vsoto celih števil.

Funkcije Rust lahko vrnejo več vrednosti; podati boste morali povratni tip(-e) in vrniti vrednosti tipa iz funkcije.

 fn function_name(arg: type, arg2: type) -> (type, type) { 
    // function body here
    return arg, arg2
}

Tukaj je funkcija, ki sprejme niz in 32-bitno celo število kot argument ter vrne argumente kot torko.

 fn string_and_integer(s: String, n: i32) -> (String, i32) { 
    return (s, n);
}

The niz_in_celo število funkcija sprejme niz in 32-bitno celo število ter ju vrne kot torko. Iz funkcije Rust lahko vrnete samo eno vrednost.

Lahko izpustite vrnitev pri vrnitvi končnega izraza iz funkcije, da bo koda bolj jedrnata.

igre, ki ne potrebujejo podatkov
 fn string_and_integer(s: String, n: i32) -> (String, i32) { 
    return (s, n);
}

// the functions are equivalent

fn str_and_int(s: String, n: i32) -> (String, i32) {
    (s, n)
}

Ti dve funkciji se obnašata enako, saj obe sprejmeta niz in celo število ter te argumente vrneta kot torko.

Klicanje funkcij Rust

Eno funkcijo lahko pokličete iz druge tako, da zapišete njeno ime, ki mu sledijo vrednosti, ki ji jih želite posredovati v oklepajih:

 fn add_numbers(x: i32, y: i32) -> i32 { 
    x + y
}

fn main() {
    let result = add_numbers(3, 5);
    println!("The result is {}", result); // Output: The result is 8
}

The glavni funkcijske klice dodaj_števila , ki mu posreduje dve celi števili. Rezultat funkcije dodeli spremenljivki, rezultat .

  Rezultat klicanja funkcij Rust primer

Lahko deklarirate funkcije za Rust Structs

Funkcije lahko deklarirate znotraj struktur Rust. To postanejo metode za strukturo, ki lahko do nje dostopa in jo spreminja.

Rust ni zgolj objektno usmerjen, vendar ponuja strukture za združevanje povezanih podatkov. Lahko si prizadevate za implementacijo OOP konceptov v Rust z uporabo struktur z metodami.