Rustfunksjoner

Rustfunksjoner
Denne guiden vil utforske hvordan du kan lage og bruke funksjoner i rustprogrammeringsspråket. Funksjoner er et universelt trekk i de fleste programmeringsspråk og grunnleggende for enhver utvikler å vite.

Hva er en funksjon?

Før du kommer inn på detaljene om å lage og bruke en funksjon, la oss bryte ned hva en funksjon er og hvorfor vi skal bruke den.

En funksjon er ikke annet enn en eller flere kodeblokk som er gruppert sammen og utfører en enkelt enhet. Funksjoner er en tung funksjon i de fleste programmeringsspråk, da de lar oss organisere og eksportere kode til andre deler av programmet i et lesbart mønster.

Nå har du kommet over hovedfunksjonen i rustspråket. Hovedfunksjonen er en spesiell type funksjon som fungerer som inngangspunkt for et rustprogram.

Med det ut av veien, la oss diskutere hvordan vi kan lage og bruke funksjoner i rust.

Rustfunksjoner

Følgende er trinnene å ta når du definerer en funksjon i rust.

  1. Vi starter med nøkkelordet FN.
  2. Deretter setter vi navnet på funksjonen.
  3. Et par parenteser og passerer en liste over parametere.
  4. Definer et funksjonskropp ved hjelp av åpning og lukking av krøllete seler.
  5. Til slutt en returverdi (hvis tilgjengelig).

Vi kan uttrykke koden ovenfor i syntaks vist nedenfor:

fnFunction_name (parametere)
// Funksjonskropp

Den mest grunnleggende funksjonstypen er en som ikke aksepterer noen parametere og heller ikke inneholder en returverdi. Vi kan definere en slik funksjon som vist i eksemplet nedenfor:

fn say_hello ()
Println!("Hei Verden");

Ovennevnte illustrerer det mest grunnleggende konseptet for en funksjonsdefinisjon. Vi starter med nøkkelordet FN etterfulgt av navnet på funksjonen, i vårt tilfelle, Say_hello (). Vi åpner deretter funksjonskroppen inne i et par krøllete seler.

Funksjonskroppen inneholder ingenting annet enn logikken i hva funksjonen gjør. Noen ganger vil en funksjon kalle andre funksjoner og bruke dem.

Ringer en funksjon

Når vi har erklært en funksjon, kan vi bruke den til å utføre de definerte handlingene. Vi omtaler prosessen med å bruke en funksjon som en funksjonsanrop eller påkalle en funksjon.

I rust kaller vi en funksjon ved å oppgi navnet og et par parenteser. Dette forteller kompilatoren at vi ønsker å utføre instruksjonene som er definert i den funksjonen.

I vårt eksempel kan vi kalle vår funksjon i hovedfunksjonen som vist i eksemplet nedenfor:

fn main ()
//! Ring funksjonen
si hei();

/// Funksjonserklæring
fn say_hello ()
Println!("Hei Verden");

Funksjonsparametere

En av de viktigste grunnene til å bruke funksjoner er å passere parametere. En parameter er en spesiell type variabel som vi kan gi til funksjonen og tillate modifisering av logikken som funksjonen bruker.

Du kan ofte høre begrepene ordparameter og argument brukt om hverandre. Selv om de har en forskjell, er det egentlig ingenting som hindrer deg i å bygge verktøy med rust.

For å definere et sett med funksjonsparametere, starter vi med å definere parameternavnet etterfulgt av dens type inne i funksjonsparentesene.

Syntaksen er som vist:

fn funksjon_name (parameter1: data_type)
// Funksjonskropp

Merk at du må utføre type merknad for en funksjonsparameter.

La oss ta Say_hello -funksjonen vi definerte tidligere og forbedre den slik at den sier hei til den spesifikke brukeren.

Vi kan gjøre:

fn Say_hello (navn: & str)
Println!("Hei, ", navn);

I eksemplet over definerer vi en parameter for Say_hello -funksjonen til Type & Str. Vi kan nå gi et navn til funksjonen, og det vil hilse på oss med det oppgitte navnet.

For å passere parameteren under funksjonssamtalen, kan vi gjøre:

fn main ()
Say_hello ("Sarah!");

fn Say_hello (navn: & str)
Println!("Hei, ", navn);

Funksjonsuttalelse og uttrykk

Som nevnt omfatter et funksjonsorgan med kodeoppgaver som utfører en handling. Vi har brukt en definert makro for å skrive ut noe på skjermen i vårt eksempel. Vi kan imidlertid lage tilpasset logikk for funksjonene våre.

Ta for eksempel funksjonen nedenfor som tar to heltall og returner maksimum av de to:

fnmaximum (x: i32, y: i32)
La MUT maks = 0;
Hvis x> y
maks = x;
annet
maks = y;

Println!("Maks verdi er: ", maks);

Vi kan deretter kalle funksjonen og passere de to heltallverdiene som vist nedenfor:

fn main ()
maksimum (100, 50);

Å kjøre koden over skal skrive ut:

Maks verdi er: 100

Funksjonsreturverdier

En funksjon kan også returnere en verdi basert på logikken og handlingene den utfører. Vi kan deretter bruke verdien som returneres fra funksjonen for å utføre andre operasjoner. Selv om vi ikke navngir returverdien i en funksjon, må vi fortelle kompilatoren at vi forventer at funksjonen skal returnere en verdi av en bestemt type.

Vi gjør dette ved hjelp av pilen -> Notasjon.

Ta maksimal () -funksjonen vi definerte tidligere. I stedet for å skrive ut maksverdien, kan vi ha funksjonen Return max -verdien, og vi kan bruke den til å handle på andre deler av programmet.

For å definere en funksjonsreturstype, kan vi bruke syntaksen som:

fn funksjon_name (parameter: type) -> return_type
// Funksjonskropp

Tenk på eksemplet nedenfor som re-definerer den maksimale funksjonen for å inkludere en returverdi:

fn maksimum (x: i32, y: i32) -> i32
// logikk

I dette tilfellet forventer vi at funksjonen vil returnere en i32 -type.

Når vi har definert en funksjonsreturstype, må vi sørge for at funksjonen faktisk returnerer noe.

Vi kan gjøre dette ved hjelp av returnøkkelordet. For å returnere den maksimale verdien fra funksjonen over, kan vi for eksempel gjøre:

fnmaximum (x: i32, y: i32) -> i32
La MUT maks = 0;
Hvis x> y
maks = x;
annet
maks = y;

return Max;

Funksjonen skal returnere verdien på maksimalvariabelen.

Et annet format vi kan bruke for å returnere en verdi fra en funksjon er å spesifisere returverdien uten semikolonterminator.

Et eksempel er som vist:

fnMain ()
Say_hello ("Sarah!");
maksimum (100, 50);

fnsay_hello (navn: & str)
Println!("Hei, ", navn);

fnmaximum (x: i32, y: i32) -> i32
letmut max = 0;
Hvis x> y
maks = x;
annet
maks = y;

// Ingen returnøkkelord eller semi-kolon
Maks

Eksemplet ovenfor skal oppføre seg på samme måte som returnøkkelordet.

Vi kan deretter bruke verdien som returneres fra funksjonen for å utføre en handling. For eksempel:

fn main ()
Println!("Produkt: ", maksimum (100, 10) * 2);

Her tar vi verdien som returneres fra maksimal funksjon og multipliser den med 2.

I Avslutning

For denne opplæringen undersøkte vi konseptet med funksjoner, hvordan definere en funksjon, funksjonsparametere, funksjonsreturverdier og mer. Funksjoner er et viktig konsept i programmering, og de lar oss organisere og gjenbruke kode uten repetisjon.

Vi håper du likte opplæringen.

Ha det så lenge!