Rooste funktsioonide mõistmine

Rooste funktsioonide mõistmine
Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Funktsioonid on olulised programmeerimiskonstruktsioonid, kuna need panevad aluse koodi korduvkasutatavusele ja hõlbustavad modulaarset programmeerimist. Funktsioonid on iseseisvad koodiplokid, mis täidavad konkreetseid ülesandeid. Nad saavad vastu võtta sisendi argumentide kujul ja tagastada väärtuse.





Rust pakub funktsioone koodi organiseerimiseks, kapseldamiseks ja koodi korduvkasutamiseks.





PÄEVA VIDEO MAKKEUSE

Funktsioonide määratlemine roostes

  Jetbrainsi roostefunktsioonide eelvaade

Roostefunktsioonid on palju sarnased mis tahes muus programmeerimiskeeles , kuigi on väikseid erinevusi, mida peate mõistma.





Saate määrata oma Rust-programmide funktsioonid fn märksõna, millele järgneb funktsiooni nimi, valikulised argumendid ja valikuline tagastus andmetüüp .

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

Siin on lihtne Rust-funktsioon, mis ei võta vastu argumente ega tagasta väärtusi.



 fn a_function(){ 
    let x = 3;
    println!("{}", x)
}

a_funktsioon on lihtne Rust-funktsioon, mis prindib muutuja x .

Roostefunktsiooni allkirjad

Funktsioonisignatuurid on viis funktsioonide nimetamiseks ning nende argumentide ja tagastustüüpide kirjeldamiseks, ilma funktsiooni keha lisamata. Funktsioonisignatuurid on kasulikud Rusti teekide API-de dokumenteerimiseks.





Siin on Rust-funktsiooni allkirja näide:

 fn name() 

fn greet(name: &str)

The nimi funktsioon on minimaalne funktsiooni allkiri, samas kui tervitada signatuur määrab, et funktsioon võtab ühe argumendi, nimi , tüüpi string ( &str ).





Funktsioonide deklareerimine argumentide ja tagastusväärtustega

Roostefunktsioonid võivad võtta palju argumente ja piir ei ole selgelt määratletud. Argumentidega funktsioonid on üldiselt paindlikumad, kuna need võivad võtta väärtusi teistest funktsioonidest ja koodiosadest.

Siin on tüüpiline Rust-funktsiooni mudel, mis võtab argumente:

kuidas lisada rakendust vizio nutitelevisiooni
 fn function_name(arg: type, arg2: type) { 
    // function body here
}

Funktsiooni argumendi tüüp võib olla sisseehitatud Rust või teie programmi kohandatud tüüp.

Siin on näide lihtsast funktsioonist, mis võtab argumentidena kaks täisarvu:

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

The lisa_numbrid funktsioon võtab kaks 32-bitist täisarvu ja prindib täisarvude summa.

kuidas kontrollida, kas kõvaketas ei tööta

Roostefunktsioonid võivad tagastada mitu väärtust; peate määrama tagastamise tüübi(d) ja tagastama funktsiooni tüübi väärtused.

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

Siin on funktsioon, mis võtab argumendina sisse stringi ja 32-bitise täisarvu ning tagastab argumendid korteegina.

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

The string_ja_täisarv funktsioon võtab stringi ja 32-bitise täisarvu, tagastades need korteegina. Funktsioonist Rust saate tagastada ainult ühe väärtuse.

Võite välja jätta tagasi märksõna funktsiooni lõpliku avaldise tagastamisel, et muuta kood kokkuvõtlikumaks.

 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)
}

Need kaks funktsiooni käituvad samamoodi, kuna mõlemad võtavad sisse stringi ja täisarvu ning tagastavad need argumendid korteegina.

Roostefunktsioonide helistamine

Saate kutsuda ühte funktsiooni teisest, kirjutades selle nime ja sulgudes väärtused, mida soovite sellele edastada:

 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 peamine funktsioonikutsed lisa_numbrid , edastades sellele kaks täisarvu. See määrab funktsiooni tulemuse muutujale, tulemus .

  Rooste funktsioonide näite kutsumise tulemus

Saate deklareerida roostekonstruktsioonide funktsioone

Funktsioone saab deklareerida Rust-struktuurides. Need muutuvad meetoditeks struktuuri jaoks, mis pääseb sellele juurde ja seda saab muuta.

Rust ei ole puhtalt objektorienteeritud, kuid see pakub struktuure seotud andmete rühmitamiseks. Saate töötada OOP-kontseptsioonide rakendamise nimel Rustis, kasutades meetoditega struktuure.