Hvis du er interessert i å utforske flere rustemner, kan du sjekke rustlisten vår for å lære mer.
Parameteren
Når du erklærer generiske typer, finner du parameteren. Det er en brukt til å representere enhver datatype i rust:
Et eksempel på typeparameteren i en funksjon er et vist:
fn my_functionOvennevnte definerer en generisk funksjon som tar et argument t av enhver type.
Du kan definere flere generiske parametere ved å skille dem med komma:
fn my_functionI syntaks ovenfor definerer vi flere generiske parametere, t, u, v. Selv om det ikke er nødvendig, er det vanlig å finne generiske typer fra T og øke alfabetet.
Rust definer generisk struktur
Vi kan definere en generisk struktur som vist i syntaksen nedenfor:
strukturstrukturnavnTa eksemplet, struktur definert nedenfor:
struct mystructOvennevnte skaper en generisk struktur med to parametere. Inne i strukturen spesifiserer vi to strukturmedlemmer av type t og u. Siden T og U er generiske typer, kan de være av hvilken som helst type.
Generiske funksjoner
Den samme konstruksjonen kan brukes på funksjoner og metode. Hvis en funksjon tar type, sies det å være en generisk funksjon.
Generisk funksjonsdefinisjon er som vist:
fn func_nameTa eksemplet med definisjon av generisk funksjon nedenfor:
fn generiskI dette eksemplet har vi en generisk funksjon som tar enhver type og skriver den ut til konsollen. Å kjøre ovennevnte kode vil imidlertid føre til en feil.
Siden vi bruker en generisk parameter, må vi implementere displayet eller feilsøkingsegenskapen for å skrive ut den. Vi kan avgrense koden som:
Bruk std :: fmt :: debug;I dette tilfellet importerer vi feilsøkingstrekket og bruker den til den generiske typen. Vi kan deretter skrive ut verdien ved hjelp av feilsøkingsplassen: :?
Det samme tilfellet gjelder hvis en funksjon trenger å utføre noen form for drift. Ta eksempelfunksjonen nedenfor som returnerer 0 hvis en verdi er jevn og 1 hvis annet.
FN EVEN_ODDHvis vi kaller funksjonen ovenfor, vil den returnere en feil. Vi må implementere REM -egenskapen for at den skal fungere som:
Bruk std :: ops :: rem;REM- og EQ -egenskapene lar deg bruke resten av operatøren og utføre logisk sammenligning.
Konklusjon
I denne artikkelen undersøkte vi grunnleggende om å jobbe med generiske typer i rustspråket. Sjekk dokumentene for å lære mer.