Rust datatyper

Rust datatyper
I rust har hver verdi sin datatype. Datatypen forteller kompilatoren hva slags verdi det er og hvordan du bruker den. Selv om rust er et statisk typisk språk, noe som betyr at typen verdi skal være kjent før sammenstilling, gjør Rust en utrolig jobb med å utlede typer basert på den tildelte verdien.

Datatyper er et universelt trekk blant mange programmeringsspråk og gir en solid byggestein for programmene vi bygger med den. Husk at hvert språk har sine egne typer som kan avvike fra andre språk.

Som programmerere er det mer enn avgjørende å kjenne de forskjellige primitive typene som er gitt av et språk. Derfor, for denne opplæringen, vil vi gå gjennom de forskjellige typene på rustprogrammeringsspråket.

Rust primitive typer

Det er to hovedkategorier for rustprimitive typer:

  1. Skalartyper
  2. Sammensatte typer

Imidlertid spiller det ingen rolle om en type er skalar eller sammensatt, alt du trenger å vite er hvordan du bruker den i programmene dine.

La oss starte med de vanligste og grunnleggende typene i rust:

Heltall

Den første kategorien av primitive typer i rust er heltall. Et heltall er en talltype som ikke har en brøkverdi. Det er forskjellige typer heltalltyper i rust og inkluderer:

  1. i8
  2. U8
  3. I16
  4. U16
  5. i32
  6. U32
  7. i64
  8. U64
  9. I128
  10. U128
  11. isize
  12. Bruk

Hver heltallstype tar formatet til:

brev

Brevet i dette tilfellet betegner om nummeret kan ha et tegn. Hvis typen er signert (i), kan den ha en negativ verdi. Hvis ikke er signert (u), vil antallet bare være positivt.

Tallverdien representerer størrelsen i biter typen vil okkupere i minnet. For eksempel representerer en i32-verdi et 32-bits signert heltall.

Isize eller brukstypen vil avhenge av arkitekturen som koden kjører. Hvis du er på 32-biters arkitektur, vil typen ta opp 32-bits og 64-bit for 64bit arkitekturer.

MERK: Forsikre deg om at du holder verdiene dine innenfor området for spesifiserte typer. Ellers har du et overløp som kan føre til farlige operasjoner.

Eksempelprogrammet nedenfor viser hvordan du erklærer og bruker heltalltyper i rust.

fn main ()
// Heltallstyper
La I_8 = -128;
La U_8 = 127;
La I_16 = -32768;
La U_16 = 32767;
Let I_32 = -2147483648;
La U_32 = 2147483647;
Let I_64 = -9223372036854775808_I64;
La U_64 = 9223372036854775807_U64;
Let I_128 = -170141183460469231731687303715884105728_I128;
La U_128 = 170141183460469231731687303715884105727_U128;
Let I_Size = -9223372036854775808_isize;
La U_SIZE = 9223372036854775807_USISIZE;
Println!("i_8 -> \ nu_8 -> \ ni_16 -> \ nu_16 -> \ ni_32 -> \ nu_32 -> \ ni_64 -> \ ni_64 -> \ Ni_128 -> \ nu_128 -> \ ni_size -> \ nu_size -> ", i_8, u_8, i_16, u_16;

Programmet over viser hvordan du erklærer int -typer i rust. Dette skal skrive ut:

MERK: Hvis du ikke spesifiserer typen når du tildeler en numerisk verdi, vil Rust standard være en i32 -type.

Flytende type

Rust har tall for flytende type. Dette er tall som inkluderer flytende punktverdier eller desimalpunkter. Det er bare to typer flytende typer i rust: F32 og F64 som er 32-biters og 64-biters verdier.

Eksempel på flytende type er som vist:

La F_32 = 3.141_f32; // 32-bit flytende type
La F_64 = 3.141; // 64-bit flytende type

Hvis du ikke spesifiserer typen for en flytende punktverdi, vil Rust standard være F64-typen.

Booleans

Den andre typen levert av Rust er en boolsk. Som alle boolske logiske verdier, har den to mulige verdier: ekte eller usant. En boolsk er en byte i størrelse.

Eksempel er som vist:

La var1 = sant;
La var2 = falsk;

Karaktertype

Karaktertypen refererer til en enkelt Unicode -tegn. Det er 4 byte i størrelse. Følgende viser for eksempel forskjellige typer Unicode Char -typer.

La a = 'a';
La emoji = '😊';
La pi = 'π';
La Great = '大';

Kodeeksemplene ovenfor representerer forskjellige Unicode -tegn.

Matriser

Den andre kategorien av primitive typer i rust er sammensatte typer. En matrise er en del av sammensatt type.

En matrise refererer til en bestilt samling av verdier av lignende typer. Koden nedenfor viser en matrise i rust:

La brev: [&str; 5] = ["a", "b", "c", "d", "e"];

I rust erklærer vi en matrise ved hjelp av let-nøkkelordet etterfulgt av variabelnavnet, en fullkolon og typen og størrelsen inne i en firkantet brakett.

Skiver

Skiver ligner tett på matriser bortsett fra at de er dynamiske. I motsetning til en matrise, kan en skive vokse eller krympe i størrelse.

Et eksempel er som vist:

La SLC = [1,2,3,4,5];

Tuples

Den andre typen forbindelser datatyper i rust er en tuple. En tuple er definert en heterogen verdens sekvens. En tuple kan inneholde verdier av flere typer i motsetning til en matrise. Tuples har også en ordre og kan nås via indeksene sine. Sjekk opplæringen vår om Rust Tuples for å lære mer.

Et eksempel på en rusttuple er som vist nedenfor:

La TUP = (1,2,3,4,5); // ingen type merknad
La TUP_LETTER: (I32, & Str, F64, Char) = (100, "Hello", 3.141, 'a'); // eksplisitt type merknad

I den første tupelen lar vi Rust -kompilatoren utlede typen basert på verdiene som er gitt.

For den andre forteller vi eksplisitt kompilatoren hvilke typer vi ønsker. Husk at ordren betyr noe i denne typen erklæring.

Konklusjon

Fra denne opplæringen legger du merke til at Rust gir oss en serie fantastiske primitive typer. De lar oss håndtere forskjellige datatyper og kontrollere dataene som kommer inn eller ut av applikasjonene våre.

Takk for at du leste!