Typy danych rdzy

Typy danych rdzy
W rdzy każda wartość ma swój typ danych. Typ danych informuje kompilatora, jaka jest wartość i jak z niej korzystać. Chociaż rdza jest językiem typu statycznie wpisanym, co oznacza, że ​​rodzaj wartości powinien być znany przed kompilacją, Rust wykonuje niesamowitą robotę wnioskowania typów na podstawie przypisanej wartości.

Typy danych są uniwersalną funkcją wśród wielu języków programowania i zapewniają solidny element składowy dla programów, które z nim budujemy. Pamiętaj, że każdy język ma własne typy, które mogą różnić się od innych języków.

Jako programiści znajomość różnych pierwotnych typów dostarczanych przez język jest więcej niż kluczowe. Stąd w tym samouczku przejdziemy przez różne typy w języku programowania rdzy.

Rust prymitywne typy

Istnieją dwie główne kategorie dla rdzy prymitywnymi:

  1. Typy skalarne
  2. Typy złożone

Jednak tak naprawdę nie ma znaczenia, czy typ jest skalarny, czy złożony, wszystko, co musisz wiedzieć, to, jak używać go w swoich programach.

Zacznijmy od najczęstszych i podstawowych typów w rdzy:

Liczby całkowite

Pierwszą kategorią prymitywnych typów w rdzy są liczby całkowite. Liczba całkowita to typ liczby, który nie ma wartości ułamkowej. Istnieją różne rodzaje rodzajów liczb całkowitych w rdzy i obejmują:

  1. i8
  2. U8
  3. i16
  4. U16
  5. i32
  6. U32
  7. i64
  8. U64
  9. I128
  10. U128
  11. Izze
  12. Usize

Każdy typ liczby całkowitej ma format:

list

List w tym przypadku oznacza, czy liczba może mieć znak. Jeśli typ jest podpisany (i), może mieć wartość ujemną. Jeśli unsigned (u), liczba będzie tylko pozytywna.

Wartość liczby reprezentuje rozmiar w bitach, który typ zajmie w pamięci. Na przykład wartość i32 reprezentuje 32-bitową liczbę całkowitą.

Typ Isize lub Usize będzie zależeć od architektury, na której działa kod. Jeśli jesteś na 32-bitowej architekturze, typ przejmie 32 bity i 64-bitowe dla 64-bitowych architektur.

NOTATKA: Upewnij się, że utrzymujesz swoje wartości w zakresie określonych typów. W przeciwnym razie masz przepełnienie, które może prowadzić do niebezpiecznych operacji.

Poniższy przykładowy program pokazuje, jak zadeklarować i używać typów liczb całkowitych w rdzy.

fn main ()
// Typy liczb całkowitych
niech i_8 = -128;
niech u_8 = 127;
niech i_16 = -32768;
niech u_16 = 32767;
niech i_32 = -2147483648;
niech u_32 = 2147483647;
niech i_64 = -9223372036854775808_i64;
Niech u_64 = 9223372036854775807_u64;
Niech I_128 = -170141183460469231731687303715884105728_i128;
Niech u_128 = 170141183460469231731687303715884105727_u128;
niech i_size = -9223372036854775808_isize;
Niech u_size = 9223372036854775807_usize;
println!może ni_128 -> \ nu_128 -> \ ni_size -> \ nu_size -> ", i_8, u_8, i_16, u_16, i_32, u_32, i_64, u_64, i_128, u_128, i_size, u_size);

Powyższy program pokazuje, jak deklarować typy int rdzy. To powinno wydrukować:

NOTATKA: Jeśli nie określisz typu podczas przypisywania wartości liczbowej, Rust będzie domyślnie do typu i32.

Typowy typ

Rdza ma liczby pływające. Są to liczby, które obejmują zmiennoprzecinkowe wartości lub punkty dziesiętne. Istnieją tylko dwa rodzaje pływających typów w rdzy: F32 i F64, które są wartości 32-bitowe i 64-bitowe.

Przykład pływającego typu są jak pokazano:

Niech f_32 = 3.141_F32; // 32-bitowy pływający typ
Niech f_64 = 3.141; // 64-bitowy pływający typ

Jeśli nie określisz typu dla wartości zmiennoprzecinkowej, Rust będzie domyślnie do typu F64.

Boolean

Drugi typ dostarczany przez Rust jest logiczny. Podobnie jak wszystkie wartości logiki logicznej, ma dwie możliwe wartości: prawda lub fałsz. Boolean ma jeden bajt wielkości.

Przykład to jak pokazano:

Niech var1 = true;
Niech var2 = false;

Typ znaku

Typ znaku odnosi się do pojedynczego znaku Unicode. Ma 4 bajty wielkości. Na przykład następujące wyświetla się różne typy typów charode.

Niech a = „a”;
Niech emoji = „😊”;
niech pi = „π”;
Niech Great = „大”;

Powyższe przykłady kodu reprezentują różne znaki Unicode.

Tablice

Drugą kategorią pierwotnych typów w rdzy to typy złożone. Tablica jest częścią typu złożonego.

Tablica odnosi się do uporządkowanego zbioru wartości podobnych typów. Poniższy kod pokazuje tablicę w rdzy:

Niech list: [&str; 5] = [„A”, „B”, „C”, „D”, „E”];

W rdzy deklarujemy tablicę za pomocą słowa kluczowego, a następnie zmiennej nazwy, pełnego kolonu oraz typu i rozmiaru wewnątrz kwadratowego wspornika.

Plastry

Plastry są ściśle podobne do tablic, z wyjątkiem tego, że są dynamiczne. W przeciwieństwie do tablicy, plasterek może rosnąć lub kurczyć się.

Przykładem jest jak pokazano:

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

Krotki

Innym typem danych związków w rdzy jest krotka. Krotek definiuje heterogeniczną sekwencję wartości. Krotek może pomieścić wartości wielu typów, w przeciwieństwie do tablicy. Krotki mają również zamówienie i można je uzyskać za pośrednictwem swoich indeksów. Sprawdź nasz samouczek na krotkach rdzy, aby dowiedzieć się więcej.

Przykład krotki rdzy pokazano poniżej:

Pozwól TUP = (1,2,3,4,5); // Brak adnotacji typu
Pozwól tup_letter: (i32 i str, f64, char) = (100, „hello”, 3.141, „A”); // adnotacja typu jawnego

W pierwszym krotce pozwalamy kompilator rdzy na wniosek o typach na podstawie dostarczonych wartości.

Dla drugiego wyraźnie mówimy kompilatorowi, jakie typy chcemy. Należy pamiętać, że zamówienie ma znaczenie w tego rodzaju deklaracji.

Wniosek

Z tego samouczka zauważasz, że Rust zapewnia nam zestaw niesamowitych prymitywnych typów. Pozwalają nam obsługiwać różne typy danych i kontrolować dane, które pojawiają się lub z naszych aplikacji.

Dziękuje za przeczytanie!