W rdzy możemy określić rozmiar określonego typu za pomocą funkcji size_of. Ta funkcja jest w rdzeniu :: mem :: size_of i przyjmuje typ i zwraca swój rozmiar w bajtach.
Dowiedzmy się, jak korzystać z funkcji size_of, aby określić rozmiar różnych rodzajów w rdzy.
Rozmiar rdzy prymitywnymi typów
Możemy określić rozmiar typów prymitywnych rdzy za pomocą funkcji size_of. Ogólna składnia funkcji size_of jest jak pokazano poniżej:
pub const fn size_ofJak wspomniano, funkcja zwróci rozmiar określonego typu w bajtach. Stwierdza, że rozmiar typu nie jest stabilny w kompilacjach krzyżowych, z wyjątkiem typów prymitywnych.
Użyjmy następującego przykładu, aby określić rozmiar typu logicznego:
Użyj STD :: MEM;Przykładowy program importuje moduł pamięci ze standardowej biblioteki. Daje nam to dostęp do funkcji size_of w celu ustalenia rozmiaru bool.
Następnie wywołujemy funkcję wewnątrz metody println i zwracamy rozmiar typu logicznego.
Powstałe wyjście jest jak pokazano poniżej:
$ Cargo RunMożemy to zrobić dla wszystkich innych prymitywnych rodzajów rdzy. Przykład znajduje się poniżej:
Użyj STD :: MEM;Wyżej wymieniony prosty program określa wielkość wszystkich prymitywnych typów w języku rdzy. Przykładem wynikającego z tego wyjścia jest jak pokazano:
Rozmiar bool: 1 bajtRozmiar rdzy struktury
W rdzeniu rozmiar struktur jest określany przez prosty algorytm:
Możesz dowiedzieć się więcej o wyrównaniu w zasobach podanym poniżej:
https: // doc.Rust-Lang.org/stabilny/std/mem/fn.ALIGN_OF.html
Przykład wielkości struktury jest pokazany poniżej:
Użytkownik structPoprzedni kod powinien zwrócić rozmiar struktury jako:
$ Cargo RunRozmiar rdzy tablicy
Możemy również użyć metody size_of do określenia rozmiaru tablicy. Rozważ przykład podany poniżej:
println!(„Rozmiar tablicy to: bajty”, mem :: size_of ::<[i32; 5]>())Poprzedni przykład określa rozmiar tablicy typów i32 i długość 5. Równoważna tablica jest jak pokazana poniżej:
Niech my_array: [i32; 5] = [1,2,3,4,5];Program powinien zwrócić rozmiar tablicy jako:
Rozmiar tablicy to: 20 bajtówRozmiar rdzy wskaźnika
Poniższy przykład ocenia rozmiar wskaźnika za pomocą składni:
println!(„Rozmiar wskaźnika bajtów”, mem :: size_of ::<*const i32>());Poprzedni kod zwraca rozmiar surowego wskaźnika w odniesieniu do i32. Powstałe dane wyjściowe przedstawiono poniżej:
Rozmiar wskaźników 8 bajtówWniosek
W tym artykule opisano, jak określić wielkość różnych rodzajów rdzy, w tym prymitywne typy, tablice, wskaźniki i struktury. Ponadto funkcja size_of została szczegółowo omówiona. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź drugi artykuł z podpowiedzi Linux, aby uzyskać więcej wskazówek i artykułów.