Funkcie Rustu majú veľa nuancií, ktoré sa líšia od iných jazykov. Tu sa dozviete všetko o ich syntaxi.

Funkcie sú základnými programovacími konštruktmi, pretože kladú základ pre znovupoužiteľnosť kódu a uľahčujú modulárne programovanie. Funkcie sú samostatné bloky kódu, ktoré vykonávajú špecifické úlohy. Môžu prijímať vstup vo forme argumentov a vrátiť hodnotu.

Rust poskytuje funkcie pre organizáciu kódu, zapuzdrenie a opätovné použitie kódu.

Definovanie funkcií v Rust

Funkcie hrdze sú podobné funguje v akomkoľvek inom programovacom jazyku, aj keď existujú malé rozdiely, ktoré musíte pochopiť.

Funkcie pre svoje programy Rust definujete pomocou fn kľúčové slovo, za ktorým nasleduje názov funkcie, voliteľné argumenty a voliteľný návrat Dátový typ.

// funkcia, ktorá neprijíma argumenty ani nevracia hodnotu
fn názov_funkcie() {
// telo funkcie tu
}

Tu je jednoduchá funkcia Rust, ktorá neprijíma žiadne argumenty ani nevracia žiadne hodnoty.

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

a_funkcia je jednoduchá funkcia Rust, ktorá vypíše premennú X.

instagram viewer

Podpisy funkcie hrdze

Podpisy funkcií predstavujú spôsob pomenovávania funkcií a opisu ich argumentov a návratových typov bez zahrnutia tela funkcie. Podpisy funkcií sú užitočné na dokumentovanie API knižníc Rust.

Tu je príklad podpisu funkcie Rust:

fn name()

fn pozdrav (meno: &str)

The názov funkcia je podpis minimálnej funkcie, zatiaľ čo pozdraviť podpis určuje, že funkcia má jeden argument, názov, typu string (&str).

Deklarovanie funkcií s argumentmi a návratovými hodnotami

Funkcie hrdze môžu mať veľa argumentov a limit nie je explicitne definovaný. Funkcie s argumentmi sú vo všeobecnosti flexibilnejšie, pretože môžu preberať hodnoty z iných funkcií a častí kódu.

Tu je typický model funkcie Rust, ktorý využíva argumenty:

fn názov_funkcie (arg: typu, argument2: typu) {
// telo funkcie tu
}

Typ argumentu funkcie môže byť vstavaný typ Rust alebo vlastný typ z vášho programu.

Tu je príklad jednoduchej funkcie, ktorá berie ako argumenty dve celé čísla:

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

The pridať_čísla funkcia vezme dve 32-bitové celé čísla a vypíše súčet celých čísel.

Funkcie hrdze môžu vrátiť viacero hodnôt; budete musieť zadať návratový typ (y) a vrátiť hodnoty typu z funkcie.

fn názov_funkcie (arg: typu, argument2: typu) -> (typu, typu) {
// telo funkcie tu
vrátiť arg, arg2
}

Tu je funkcia, ktorá berie ako argument reťazec a 32-bitové celé číslo a vracia argumenty ako n-ticu.

fn string_and_integer (s: String, n: i32) -> (String, i32) {
vrátiť (s, n);
}

The string_and_integer funkcia berie reťazec a 32-bitové celé číslo a vracia ich ako n-ticu. Z funkcie Rust môžete vrátiť iba jednu hodnotu.

Môžete vynechať vrátiť kľúčové slovo pri vrátení konečného výrazu z funkcie, aby bol kód stručnejší.

fn string_and_integer (s: String, n: i32) -> (String, i32) {
vrátiť (s, n);
}

// funkcie sú ekvivalentné

fn str_and_int (s: reťazec, n: i32) -> (reťazec, i32) {
(s, n)
}

Tieto dve funkcie majú rovnaké správanie, pretože obe berú reťazec a celé číslo a vracajú tieto argumenty ako n-ticu.

Volanie funkcií Rust

Jednu funkciu môžete volať z druhej tak, že napíšete jej názov a do zátvoriek hodnoty, ktoré jej chcete odovzdať:

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

fn main() {
nech výsledok = add_numbers(3, 5);
println!("Výsledok je {}", výsledok); // Výstup: Výsledok je 8
}

The Hlavná volania funkcií pridať_čísla, pričom jej odovzdajú dve celé čísla. Výsledok funkcie priradí premennej, výsledok.

Môžete deklarovať funkcie pre hrdzavé konštrukcie

Funkcie môžete deklarovať v rámci štruktúr Rust. Tieto sa stávajú metódami pre štruktúru, ktorá k nej môže pristupovať a upravovať ju.

Rust nie je čisto objektovo orientovaný, ale poskytuje štruktúry na zoskupovanie súvisiacich údajov. Môžete pracovať na implementácii konceptov OOP v Ruste pomocou štruktúr s metódami.