A Rust funkciói sok olyan árnyalattal rendelkeznek, amelyek különböznek a többi nyelvtől. Itt mindent megtudhat a szintaxisukról.

A függvények alapvető programozási konstrukciók, mivel megalapozzák a kód újrafelhasználhatóságát és megkönnyítik a moduláris programozást. A függvények önálló kódblokkok, amelyek meghatározott feladatokat hajtanak végre. Kaphatnak bemenetet argumentumok formájában, és visszaadhatnak egy értéket.

A Rust funkciókat biztosít a kódszervezéshez, tokozáshoz és a kód újrafelhasználásához.

Funkciók meghatározása Rust-ban

A rozsdafunkciók nagyon hasonlóak bármely más programozási nyelven működik, bár vannak apró különbségek, amelyeket meg kell értened.

A Rust programokhoz tartozó funkciókat a fn kulcsszó után a függvény neve, az opcionális argumentumok és az opcionális visszatérés adattípus.

// függvény, amely nem vesz fel argumentumokat és nem ad vissza értéket
fn függvény_név() {
// funkciótest itt
}

Íme egy egyszerű Rust függvény, amely nem vesz fel semmilyen argumentumot és nem ad vissza semmilyen értéket.

instagram viewer
fn a_function(){
legyen x = 3;
println!("{}", x)
}

a_függvény egy egyszerű Rust függvény, amely kiírja a változót x.

Rust Function Signatures

A függvényaláírások egy mód a függvények elnevezésére, argumentumaik és visszatérési típusaik leírására, függvénytörzs nélkül. A függvényaláírások hasznosak a Rust könyvtárak API-jainak dokumentálásához.

Íme egy példa a Rust függvény aláírására:

fn név()

fn üdvözlés (név: &str)

A név függvény egy minimális függvényaláírás, míg a üdvözöl Az aláírás azt határozza meg, hogy a függvény egyetlen argumentumot vesz fel, név, karakterlánc típusú (&str).

Függvények deklarálása argumentumokkal és visszatérési értékekkel

A rozsdafüggvények sok argumentumot felvehetnek, és a határ nincs kifejezetten meghatározva. Az argumentumokkal rendelkező függvények általában rugalmasabbak, mivel más függvényekből és kódrészekből is átvehetnek értékeket.

Íme a Rust függvény tipikus modellje, amely argumentumokat vesz fel:

fn függvény_neve (arg: típus, arg2: típus) {
// funkciótest itt
}

A függvény argumentumtípusa lehet egy Rust beépített típus vagy egy egyéni típus a programból.

Íme egy példa egy egyszerű függvényre, amely két egész számot vesz fel argumentumként:

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

A add_numbers A függvény két 32 bites egész számot vesz fel, és kiírja az egész számok összegét.

A rozsdafüggvények több értéket is visszaadhatnak; meg kell adnia a visszatérési típuso(ka)t, és vissza kell adnia a típus értékeit a függvényből.

fn függvény_neve (arg: típus, arg2: típus) -> (típus, típus) {
// funkciótest itt
Visszatérés arg, arg2
}

Itt van egy függvény, amely egy karakterláncot és egy 32 bites egész számot vesz fel argumentumként, és az argumentumokat sorként adja vissza.

fn string_and_integer (s: String, n: i32) -> (String, i32) {
Visszatérés (s, n);
}

A karakterlánc_és egész szám függvény egy karakterláncot és egy 32 bites egész számot vesz fel, és ezeket sorként adja vissza. Rust függvényből csak egyetlen értéket adhat vissza.

Kihagyhatja a Visszatérés kulcsszót, amikor a függvény végső kifejezését adja vissza, hogy a kód tömörebb legyen.

fn string_and_integer (s: String, n: i32) -> (String, i32) {
Visszatérés (s, n);
}

// a függvények egyenértékűek

fn str_and_int (s: String, n: i32) -> (String, i32) {
(s, n)
}

Ez a két függvény viselkedése azonos, mivel mindkettő karakterláncot és egész számot vesz fel, és ezeket az argumentumokat sorként adja vissza.

Rust Functions hívása

Meghívhat egy függvényt a másikból, ha beírja a nevét, majd zárójelben az átadni kívánt értékeket:

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

fn main() {
legyen eredmény = add_numbers(3, 5);
println!("Az eredmény: {}", eredmény); // Kimenet: Az eredmény: 8
}

A fő- függvényhívások add_numbers, átadva két egész számot. A függvény eredményét egy változóhoz rendeli, eredmény.

Bejelentheti a rozsdaszerkezetek funkcióit

Függvényeket deklarálhat a Rust struktúrákon belül. Ezek olyan metódusokká válnak a struktúra számára, amelyek hozzáférhetnek és módosíthatják azt.

A Rust nem tisztán objektum-orientált, de struktúrákat biztosít a kapcsolódó adatok csoportosításához. Dolgozhat az OOP-koncepciók Rust-ban való megvalósításán metódusos struktúrák használatával.