Programowanie D - typy danych
W języku programowania D typy danych odnoszą się do rozbudowanego systemu używanego do deklarowania zmiennych lub funkcji różnych typów. Typ zmiennej określa, ile miejsca zajmuje ona w pamięci i jak jest interpretowany zapisany wzór bitowy.
Typy w D można podzielić w następujący sposób -
Sr.No. | Rodzaje i opis |
---|---|
1 | Basic Types Są to typy arytmetyczne i składają się z trzech typów: (a) liczba całkowita, (b) zmiennoprzecinkowa i (c) znak. |
2 | Enumerated types Są znowu typami arytmetycznymi. Służą do definiowania zmiennych, którym można przypisać tylko określone dyskretne wartości całkowite w całym programie. |
3 | The type void Specyfikator typu void wskazuje, że żadna wartość nie jest dostępna. |
4 | Derived types Obejmują one (a) typy wskaźników, (b) typy tablic, (c) typy struktur, (d) typy sum, oraz (e) typy funkcji. |
Typy tablic i typy struktur są nazywane zbiorczo typami zagregowanymi. Typ funkcji określa typ wartości zwracanej przez funkcję. W następnej sekcji zobaczymy podstawowe typy, podczas gdy inne typy zostaną omówione w kolejnych rozdziałach.
Typy całkowite
Poniższa tabela zawiera listę standardowych typów liczb całkowitych wraz z ich rozmiarami i zakresami wartości -
Rodzaj | Rozmiar pamięci | Zakres wartości |
---|---|---|
bool | 1 bajt | fałszywe lub prawdziwe |
bajt | 1 bajt | -128 do 127 |
ubyte | 1 bajt | Od 0 do 255 |
int | 4 bajty | -2 147 483 648 do 2 147 483 647 |
uint | 4 bajty | Od 0 do 4 294 967 295 |
krótki | 2 bajty | -32 768 do 32767 |
ushort | 2 bajty | 0 do 65 535 |
długo | 8 bajtów | -9223372036854775808 do 9223372036854775807 |
ulong | 8 bajtów | 0 do 18446744073709551615 |
Aby uzyskać dokładny rozmiar typu lub zmiennej, możesz użyć rozszerzenia sizeofoperator. Wyrażenie type. (Sizeof) zwraca rozmiar pamięci obiektu lub typ w bajtach. Poniższy przykład pobiera rozmiar typu int na dowolnym komputerze -
import std.stdio;
int main() {
writeln("Length in bytes: ", ulong.sizeof);
return 0;
}
Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -
Length in bytes: 8
Typy zmiennoprzecinkowe
W poniższej tabeli wymieniono standardowe typy zmiennoprzecinkowe z rozmiarami pamięci, zakresami wartości i ich przeznaczeniem -
Rodzaj | Rozmiar pamięci | Zakres wartości | Cel, powód |
---|---|---|---|
pływak | 4 bajty | Od 1.17549e-38 do 3.40282e + 38 | 6 miejsc po przecinku |
podwójnie | 8 bajtów | 2.22507e-308 do 1.79769e + 308 | 15 miejsc po przecinku |
real | 10 bajtów | Od 3.3621e-4932 do 1.18973e + 4932 | albo największy typ zmiennoprzecinkowy obsługiwany przez sprzęt, albo podwójny; cokolwiek jest większe |
ifloat | 4 bajty | Od 1.17549e-38i do 3.40282e + 38i | typ wartości urojonej typu float |
idouble | 8 bajtów | 2.22507e-308i do 1.79769e + 308i | urojony typ wartości double |
realne | 10 bajtów | Od 3.3621e-4932 do 1.18973e + 4932 | urojony typ wartości rzeczywistej |
cfloat | 8 bajtów | 1.17549e-38 + 1.17549e-38i do 3.40282e + 38 + 3.40282e + 38i | liczba zespolona złożona z dwóch liczb zmiennoprzecinkowych |
cdouble | 16 bajtów | 2.22507e-308 + 2.22507e-308i do 1.79769e + 308 + 1.79769e + 308i | liczba zespolona złożona z dwóch podwójnych |
creal | 20 bajtów | 3.3621e-4932 + 3.3621e-4932i do 1.18973e + 4932 + 1.18973e + 4932i | liczba zespolona złożona z dwóch liczb rzeczywistych |
Poniższy przykład wypisuje miejsce zajmowane przez typ zmiennoprzecinkowy i jego wartości zakresu -
import std.stdio;
int main() {
writeln("Length in bytes: ", float.sizeof);
return 0;
}
Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik w systemie Linux -
Length in bytes: 4
Typy postaci
W poniższej tabeli wymieniono standardowe typy znaków wraz z rozmiarami pamięci i jej przeznaczeniem.
Rodzaj | Rozmiar pamięci | Cel, powód |
---|---|---|
zwęglać | 1 bajt | Jednostka kodu UTF-8 |
wchar | 2 bajty | Jednostka kodu UTF-16 |
dchar | 4 bajty | Jednostka kodu UTF-32 i punkt kodowy Unicode |
Poniższy przykład drukuje miejsce do przechowywania zajmowane przez typ char.
import std.stdio;
int main() {
writeln("Length in bytes: ", char.sizeof);
return 0;
}
Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -
Length in bytes: 1
Typ pustki
Typ void określa, że żadna wartość nie jest dostępna. Jest używany w dwóch sytuacjach -
Sr.No. | Rodzaje i opis |
---|---|
1 | Function returns as void Istnieją różne funkcje w D, które nie zwracają wartości lub można powiedzieć, że zwracają void. Funkcja bez zwracanej wartości ma zwracany typ void. Na przykład,void exit (int status); |
2 | Function arguments as void W D są różne funkcje, które nie akceptują żadnego parametru. Funkcja bez parametru może zostać uznana za nieważną. Na przykład,int rand(void); |
Typ pustki może nie być dla Ciebie w tym momencie zrozumiały, więc przejdźmy dalej i omówimy te koncepcje w kolejnych rozdziałach.