Functies in roest begrijpen

Functies in roest begrijpen
Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Functies zijn essentiële programmeerconstructies, omdat ze een basis leggen voor herbruikbaarheid van code en modulaire programmering mogelijk maken. Functies zijn op zichzelf staande codeblokken die specifieke taken uitvoeren. Ze kunnen input ontvangen, in de vorm van argumenten, en een waarde retourneren.





Rust biedt functies voor codeorganisatie, inkapseling en herbruikbaarheid van code.





MAAK GEBRUIK VAN DE VIDEO VAN DE DAG

Functies definiëren in roest

  Jetbrains Roest Functies Voorbeeld

Roestfuncties lijken veel op functies in elke andere programmeertaal , hoewel er kleine verschillen zijn die u moet begrijpen.





U definieert functies voor uw Rust-programma's met de fn trefwoord gevolgd door de functienaam, optionele argumenten en een optionele return data type .

 // function that neither takes in arguments nor returns a value 
fn function_name() {
    // function body here
}

Hier is een eenvoudige Rust-functie die geen argumenten opneemt of waarden retourneert.



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

een functie is een eenvoudige Rust-functie die de variabele afdrukt X .

Google Pixel 5 versus Samsung S21

Roest functie handtekeningen

Functiehandtekeningen zijn een manier om functies een naam te geven en hun argumenten en retourtypen te beschrijven, zonder een functielichaam toe te voegen. Functiehandtekeningen zijn handig voor het documenteren van API's van Rust-bibliotheken.





Hier is een voorbeeld van de handtekening van de Rust-functie:

 fn name() 

fn greet(name: &str)

De naam functie is een minimale functiehandtekening, terwijl de begroeten handtekening geeft aan dat de functie een enkel argument nodig heeft, naam , van het type tekenreeks ( &str ).





Functies declareren met argumenten en retourwaarden

Rust-functies kunnen veel argumenten opnemen en de limiet is niet expliciet gedefinieerd. Functies met argumenten zijn over het algemeen flexibeler omdat ze waarden kunnen overnemen van andere functies en delen van code.

Hier is het typische model van een Rust-functie die argumenten opneemt:

 fn function_name(arg: type, arg2: type) { 
    // function body here
}

Het functieargumenttype kan een ingebouwd Rust-type zijn of een aangepast type uit uw programma.

Hier is een voorbeeld van een eenvoudige functie die twee gehele getallen als argumenten gebruikt:

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

De voeg_nummers toe functie neemt twee gehele getallen van 32 bits op en drukt de som van de gehele getallen af.

hoe Outlook Express op Windows 10 te krijgen

Rust-functies kunnen meerdere waarden retourneren; u moet het (de) retourtype(n) specificeren en de waarden van het type uit de functie retourneren.

 fn function_name(arg: type, arg2: type) -> (type, type) { 
    // function body here
    return arg, arg2
}

Hier is een functie die een string en een 32-bits geheel getal als argument opneemt en de argumenten als een tuple retourneert.

 fn string_and_integer(s: String, n: i32) -> (String, i32) { 
    return (s, n);
}

De tekenreeks_en_geheel getal functie neemt een string en een 32-bits geheel getal op en retourneert ze als een tuple. U kunt slechts één waarde uit een Rust-functie retourneren.

Je kunt de opbrengst sleutelwoord bij het retourneren van de laatste uitdrukking van een functie, om de code beknopter te maken.

 fn string_and_integer(s: String, n: i32) -> (String, i32) { 
    return (s, n);
}

// the functions are equivalent

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

Deze twee functies gedragen zich hetzelfde omdat ze allebei een string en een geheel getal opnemen en die argumenten als een tuple retourneren.

Roestfuncties aanroepen

U kunt een functie vanuit een andere aanroepen door de naam ervan te schrijven, gevolgd door de waarden die u eraan wilt doorgeven tussen haakjes:

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

fn main() {
    let result = add_numbers(3, 5);
    println!("The result is {}", result); // Output: The result is 8
}

De voornaamst functie oproepen voeg_nummers toe , twee gehele getallen doorgeven. Het wijst het resultaat van de functie toe aan een variabele, resultaat .

  Resultaat van het aanroepen van Rust-functies voorbeeld

U kunt functies declareren voor roeststructuren

U kunt functies declareren binnen Rust structs. Dit worden methoden voor de structuur die deze kan openen en wijzigen.

Rust is niet puur objectgeoriënteerd, maar biedt structuren om gerelateerde gegevens te groeperen. U kunt werken aan het implementeren van OOP-concepten in Rust met behulp van structs met methoden.