Funkce Rustu mají mnoho nuancí, které se liší od jiných jazyků. Zde se dozvíte vše o jejich syntaxi.

Funkce jsou základní programovací konstrukty, protože pokládají základ pro opětovné použití kódu a usnadňují modulární programování. Funkce jsou samostatné bloky kódu, které provádějí specifické úkoly. Mohou přijímat vstup ve formě argumentů a vracet hodnotu.

Rust poskytuje funkce pro organizaci kódu, zapouzdření a opětovné použití kódu.

Definování funkcí v Rust

Funkce rzi jsou podobné funguje v jakémkoli jiném programovacím jazyce, i když existují malé rozdíly, které musíte pochopit.

Funkce pro své programy Rust definujete pomocí fn klíčové slovo následované názvem funkce, volitelnými argumenty a volitelným návratem datový typ.

// funkce, která nebere argumenty ani nevrací hodnotu
fn název_funkce() {
// tělo funkce zde
}

Zde je jednoduchá funkce Rust, která nepřijímá žádné argumenty ani nevrací žádné hodnoty.

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

a_funkce je jednoduchá funkce Rust, která vypíše proměnnou X.

instagram viewer

Podpisy funkce Rust

Signatury funkcí představují způsob pojmenování funkcí a popisu jejich argumentů a návratových typů, aniž by obsahovaly tělo funkce. Podpisy funkcí jsou užitečné pro dokumentaci API knihoven Rust.

Zde je příklad podpisu funkce Rust:

fn name()

fn pozdrav (jméno: &str)

The název funkce je minimální podpis funkce, zatímco pozdravit podpis určuje, že funkce přijímá jeden argument, název, typu řetězec (&str).

Deklarace funkcí s argumenty a návratovými hodnotami

Funkce Rust mohou obsahovat mnoho argumentů a limit není explicitně definován. Funkce s argumenty jsou obecně flexibilnější, protože mohou přebírat hodnoty z jiných funkcí a částí kódu.

Zde je typický model funkce Rust, který přijímá argumenty:

fn název_funkce (arg: typ, argument2: typ) {
// tělo funkce zde
}

Typ argumentu funkce může být vestavěný typ Rust nebo vlastní typ z vašeho programu.

Zde je příklad jednoduché funkce, která má jako argumenty dvě celá čísla:

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

The přidat_čísla funkce vezme dvě 32bitová celá čísla a vypíše součet celých čísel.

Funkce Rust mohou vracet více hodnot; budete muset zadat návratový typ (y) a vrátit hodnoty typu z funkce.

fn název_funkce (arg: typ, argument2: typ) -> (typ, typ) {
// tělo funkce zde
vrátit se arg, arg2
}

Zde je funkce, která jako argument přijímá řetězec a 32bitové celé číslo a vrací argumenty jako n-tici.

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

The string_and_integer funkce přijímá řetězec a 32bitové celé číslo a vrací je jako n-tici. Z funkce Rust můžete vrátit pouze jednu hodnotu.

Můžete vynechat vrátit se klíčové slovo při vrácení konečného výrazu z funkce, aby byl kód stručnější.

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

// funkce jsou ekvivalentní

fn str_and_int (s: řetězec, n: i32) -> (řetězec, i32) {
(s, n)
}

Tyto dvě funkce se chovají stejně, protože obě berou řetězec a celé číslo a vracejí tyto argumenty jako n-tici.

Volání funkcí Rust

Jednu funkci můžete volat z druhé tak, že napíšete její název následovaný hodnotami, které jí chcete předat, do závorek:

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

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

The hlavní volání funkcí přidat_čísla, předáte mu dvě celá čísla. Přiřadí výsledek funkce proměnné, výsledek.

Můžete deklarovat funkce pro rezavé konstrukce

Funkce můžete deklarovat ve strukturách Rust. Ty se stanou metodami pro strukturu, která k ní může přistupovat a upravovat ji.

Rust není čistě objektově orientovaný, ale poskytuje struktury pro seskupování souvisejících dat. Můžete pracovat na implementaci konceptů OOP v Rustu pomocí struktur s metodami.