Rust funkcijām ir daudz nianšu, kas atšķiras no citām valodām. Uzziniet visu par to sintaksi šeit.
Funkcijas ir būtiskas programmēšanas konstrukcijas, jo tās veido pamatu koda atkārtotai izmantošanai un atvieglo modulāro programmēšanu. Funkcijas ir autonomi koda bloki, kas veic noteiktus uzdevumus. Viņi var saņemt ievadi argumentu veidā un atgriezt vērtību.
Rust nodrošina koda organizēšanas, iekapsulēšanas un koda atkārtotas izmantošanas funkcijas.
Funkciju noteikšana rūsā
Rūsas funkcijas ir ļoti līdzīgas funkcijas jebkurā citā programmēšanas valodā, lai gan ir nelielas atšķirības, kas jums ir jāsaprot.
Jūs definēsit funkcijas savām Rust programmām, izmantojot fn atslēgvārdu, kam seko funkcijas nosaukums, neobligātie argumenti un izvēles atgriešana datu tips.
// funkcija, kas nepieņem argumentus un neatgriež vērtību
fn funkcijas_nosaukums() {
// funkcija ķermeņa šeit
}
Šeit ir vienkārša Rust funkcija, kas nepieņem nekādus argumentus un neatgriež nekādas vērtības.
fn a_function(){
lai x = 3;
println!("{}", x)
}
a_funkcija ir vienkārša Rust funkcija, kas izdrukā mainīgo x.
Rūsas funkcijas paraksti
Funkciju paraksti ir veids, kā nosaukt funkcijas un aprakstīt to argumentus un atgriešanas veidus, neiekļaujot funkcijas pamattekstu. Funkciju paraksti ir noderīgi Rust bibliotēku API dokumentēšanai.
Šeit ir Rust funkcijas paraksta piemērs:
fn nosaukums ()
fn sveiciens (vārds: &str)
The nosaukums funkcija ir minimāls funkcijas paraksts, savukārt sveikt paraksts norāda, ka funkcijai ir viens arguments, nosaukums, tipa virkne (&str).
Funkciju deklarēšana ar argumentiem un atgriešanas vērtībām
Rūsas funkcijas var ietvert daudzus argumentus, un ierobežojums nav skaidri noteikts. Funkcijas ar argumentiem parasti ir elastīgākas, jo tās var pārņemt vērtības no citām funkcijām un koda daļām.
Šeit ir tipisks Rust funkcijas modelis, kas ņem vērā argumentus:
fn funkcijas_nosaukums (arg: veids, arg2: veids) {
// funkcija ķermeņa šeit
}
Funkcijas argumenta tips var būt iebūvēts Rust tips vai pielāgots tips no jūsu programmas.
Šeit ir vienkāršas funkcijas piemērs, kurā kā argumenti tiek izmantoti divi veseli skaitļi:
fn pievienot_skaitļus (x: i32, y: i32) {
println!("{}", x + y);
}
The add_numbers funkcija ņem divus 32 bitu veselus skaitļus un izdrukā veselo skaitļu summu.
Rūsas funkcijas var atgriezt vairākas vērtības; jums būs jānorāda atgriešanas veids (-i) un jāatgriež veida vērtības no funkcijas.
fn funkcijas_nosaukums (arg: veids, arg2: veids) -> (veids, veids) {
// funkcija ķermeņa šeit
atgriezties arg, arg2
}
Šeit ir funkcija, kas ņem virkni un 32 bitu veselu skaitli kā argumentu un atgriež argumentus kā korteļļu.
fn string_and_integer (s: String, n: i32) -> (String, i32) {
atgriezties (s, n);
}
The virkne_un_vesels skaitlis funkcija uzņem virkni un 32 bitu veselu skaitli, atgriežot tos kā korteļļu. Varat atgriezt tikai vienu vērtību no funkcijas Rust.
Jūs varat izlaist atgriezties atslēgvārdu, atgriežot funkcijas galīgo izteiksmi, lai kods būtu kodolīgāks.
fn string_and_integer (s: String, n: i32) -> (String, i32) {
atgriezties (s, n);
}// funkcijas ir līdzvērtīgas
fn str_and_int (s: String, n: i32) -> (String, i32) {
(s, n)
}
Šīm abām funkcijām ir vienāda darbība, jo tās abas ņem virkni un veselu skaitli un atgriež šos argumentus kā virkni.
Rust Functions izsaukšana
Varat izsaukt vienu funkciju no citas, ierakstot tās nosaukumu, kam seko vērtības, kuras vēlaties tai nodot iekavās:
fn pievienot_skaitļus (x: i32, y: i32) -> i32 {
x + y
}
fn galvenais() {
let rezultāts = add_numbers(3, 5);
println!("Rezultāts ir {}", rezultāts); // Izvade: rezultāts ir 8
}
The galvenais funkciju izsaukumiem add_numbers, nododot tam divus veselus skaitļus. Tas piešķir funkcijas rezultātu mainīgajam, rezultāts.
Varat deklarēt rūsas konstrukciju funkcijas
Jūs varat deklarēt funkcijas Rust konstrukcijās. Tās kļūst par metodēm struktūrai, kas var tai piekļūt un modificēt.
Rūsa nav tikai objektorientēta, bet nodrošina struktūras saistītu datu grupēšanai. Varat strādāt, lai ieviestu OOP koncepcijas Rust, izmantojot struktūras ar metodēm.