Rust funkcijos turi daug niuansų, kurie skiriasi nuo kitų kalbų. Sužinokite viską apie jų sintaksę čia.

Funkcijos yra esminės programavimo konstrukcijos, nes jos sudaro pagrindą kodo pakartotiniam naudojimui ir palengvina modulinį programavimą. Funkcijos yra savarankiški kodo blokai, atliekantys konkrečias užduotis. Jie gali gauti įvestį argumentų pavidalu ir grąžinti reikšmę.

Rust teikia kodo organizavimo, inkapsuliavimo ir kodo pakartotinio naudojimo funkcijas.

Rūdžių funkcijų apibrėžimas

Rūdžių funkcijos labai panašios į veikia bet kuria kita programavimo kalba, nors yra nedidelių skirtumų, kuriuos turėsite suprasti.

Savo Rust programų funkcijas nustatysite naudodami fn raktinį žodį, po kurio nurodomas funkcijos pavadinimas, pasirenkami argumentai ir pasirenkamas grąžinimas duomenų tipas.

// funkcija, kuri nepriima argumentų ir nepateikia reikšmės
fn funkcijos_pavadinimas() {
// funkcijos kūnas čia
}

Štai paprasta „Rust“ funkcija, kuri nepriima jokių argumentų ir nepateikia jokių verčių.

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

a_funkcija yra paprasta „Rust“ funkcija, spausdinanti kintamąjį x.

Rūdžių funkcijos parašai

Funkcijų parašai yra būdas pavadinti funkcijas ir aprašyti jų argumentus bei grąžinimo tipus, neįtraukiant funkcijos korpuso. Funkcijų parašai yra naudingi dokumentuojant Rust bibliotekų API.

Štai „Rust“ funkcijos parašo pavyzdys:

fn vardas ()

fn sveikinimas (vardas: &str)

The vardas funkcija yra minimalus funkcijos parašas, o pasveikinti parašas nurodo, kad funkcija naudoja vieną argumentą, vardas, tipo eilutė (&str).

Funkcijų deklaravimas su argumentais ir grąžinimo reikšmėmis

Rūdžių funkcijos gali turėti daug argumentų, o riba nėra aiškiai apibrėžta. Funkcijos su argumentais paprastai yra lankstesnės, nes gali perimti reikšmes iš kitų funkcijų ir kodo dalių.

Štai tipiškas „Rust“ funkcijos modelis, kuriame naudojami argumentai:

fn funkcijos_pavadinimas (arg: tipo, arg2: tipo) {
// funkcijos kūnas čia
}

Funkcijos argumento tipas gali būti įtaisytasis Rust tipas arba pasirinktinis tipas iš jūsų programos.

Štai paprastos funkcijos, kuri kaip argumentai naudojami du sveikieji skaičiai, pavyzdys:

fn pridėti_skaičiai (x: i32, y: i32) {
println!("{}", x + y);
}

The pridėti_skaičiai funkcija paima du 32 bitų sveikuosius skaičius ir išspausdina sveikųjų skaičių sumą.

Rūdžių funkcijos gali grąžinti kelias reikšmes; turėsite nurodyti grąžinimo tipą (-ius) ir grąžinti tipo reikšmes iš funkcijos.

fn funkcijos_pavadinimas (arg: tipo, arg2: tipo) -> (tipo, tipo) {
// funkcijos kūnas čia
grąžinti arg, arg2
}

Štai funkcija, kuri paima eilutę ir 32 bitų sveikąjį skaičių kaip argumentą ir pateikia argumentus kaip eilutę.

fn eilutė_ir_sveikasis skaičius (s: eilutė, n: i32) -> (Eilutė, i32) {
grąžinti (s, n);
}

The eilutė_ir_sveikasis skaičius funkcija paima eilutę ir 32 bitų sveikąjį skaičių, grąžindama juos kaip eilutę. Iš „Rust“ funkcijos galite grąžinti tik vieną reikšmę.

Galite palikti grąžinti raktinis žodis grąžinant galutinę funkcijos išraišką, kad kodas būtų glaustesnis.

fn eilutė_ir_sveikasis skaičius (s: eilutė, n: i32) -> (Eilutė, i32) {
grąžinti (s, n);
}

// funkcijos lygiavertės

fn str_and_int (s: eilutė, n: i32) -> (Eilutė, i32) {
(s, n)
}

Šios dvi funkcijos elgiasi taip pat, nes jos abi paima eilutę ir sveikąjį skaičių ir grąžina tuos argumentus kaip eilutę.

Rūdžių funkcijų iškvietimas

Galite iškviesti vieną funkciją iš kitos, skliausteliuose parašydami jos pavadinimą ir reikšmes, kurias norite jai perduoti:

fn pridėti_skaičiai (x: i32, y: i32) -> i32 {
x + y
}

fn main() {
tegul rezultatas = pridėti_skaičiai(3, 5);
println!("Rezultatas yra {}", rezultatas); // Išvestis: rezultatas yra 8
}

The pagrindinis funkcijų skambučiai pridėti_skaičiai, perduodami du sveikieji skaičiai. Jis priskiria funkcijos rezultatą kintamajam, rezultatas.

Galite deklaruoti rūdžių konstrukcijų funkcijas

Galite deklaruoti funkcijas Rust struktūrose. Tai tampa metodais struktūrai, kuri gali ją pasiekti ir modifikuoti.

Rust nėra vien tik į objektą orientuotas, bet suteikia struktūrų susijusiems duomenims grupuoti. Galite įgyvendinti OOP koncepcijas „Rust“ naudodami struktūras su metodais.