D Programlama - Veri Tipleri

D programlama dilinde, veri türleri, farklı türlerdeki değişkenleri veya işlevleri bildirmek için kullanılan kapsamlı bir sistemi ifade eder. Bir değişkenin türü, depolamada ne kadar yer kapladığını ve depolanan bit modelinin nasıl yorumlandığını belirler.

D'deki türler şu şekilde sınıflandırılabilir -

Sr.No. Türler ve Açıklama
1

Basic Types

Aritmetik türlerdir ve üç türden oluşur: (a) tam sayı, (b) kayan nokta ve (c) karakter.

2

Enumerated types

Yine aritmetik türlerdir. Program boyunca yalnızca belirli ayrık tamsayı değerleri atanabilen değişkenleri tanımlamak için kullanılırlar.

3

The type void

Tür belirteci void , hiçbir değerin mevcut olmadığını gösterir.

4

Derived types

Bunlar arasında (a) İşaretçi türleri, (b) Dizi türleri, (c) Yapı türleri, (d) Birleşim türleri ve (e) İşlev türleri bulunur.

Dizi türleri ve yapı türleri topluca toplu türler olarak adlandırılır. Bir işlevin türü, işlevin döndürdüğü değerin türünü belirtir. Sonraki bölümde temel türleri göreceğiz, diğer bölümlerde ise diğer türler ele alınacaktır.

Tamsayı Türleri

Aşağıdaki tablo, depolama boyutları ve değer aralıklarıyla birlikte standart tam sayı türlerini listeler -

Tür Depolama boyutu Değer aralığı
bool 1 bayt yanlış veya doğru
bayt 1 bayt -128 ila 127
ubyte 1 bayt 0 ile 255
int 4 bayt -2.147.483.648 ile 2.147.483.647
uint 4 bayt 0 - 4.294.967.295
kısa 2 bayt -32.768 ila 32.767
ushort 2 bayt 0 ile 65.535
uzun 8 bayt -9223372036854775808 ile 9223372036854775807
ulong 8 bayt 0 ile 18446744073709551615

Bir türün veya değişkenin tam boyutunu elde etmek için, sizeofŞebeke. İfade türü. (Sizeof) , nesnenin veya türün bayt cinsinden depolama boyutunu verir. Aşağıdaki örnek, herhangi bir makinede int türünün boyutunu alır -

import std.stdio; 
 
int main() { 
   writeln("Length in bytes: ", ulong.sizeof); 

   return 0; 
}

Yukarıdaki programı derleyip çalıştırdığınızda, aşağıdaki sonucu verir -

Length in bytes: 8

Kayan Nokta Türleri

Aşağıdaki tabloda, depolama boyutları, değer aralıkları ve amaçlarıyla birlikte standart kayan nokta türlerinden bahsedilmektedir -

Tür Depolama boyutu Değer aralığı Amaç
yüzer 4 bayt 1.17549e-38 - 3.40282e + 38 6 ondalık basamak
çift 8 bayt 2.22507e-308 - 1.79769e + 308 15 ondalık basamak
gerçek 10 bayt 3.3621e-4932 - 1.18973e + 4932 ya donanımın desteklediği en büyük kayan nokta türü ya da iki katı; hangisi daha büyükse
Ifloat 4 bayt 1.17549e-38i - 3.40282e + 38i şamandıranın hayali değer türü
boş 8 bayt 2.22507e-308i - 1.79769e + 308i çiftin hayali değer türü
ireal 10 bayt 3.3621e-4932 - 1.18973e + 4932 gerçek hayali değer türü
cfloat 8 bayt 1.17549e-38 + 1.17549e-38i - 3.40282e + 38 + 3.40282e + 38i iki kayan sayıdan oluşan karmaşık sayı türü
cdouble 16 bayt 2.22507e-308 + 2.22507e-308i - 1.79769e + 308 + 1.79769e + 308i iki çiftten oluşan karmaşık sayı türü
creal 20 bayt 3.3621e-4932 + 3.3621e-4932i - 1.18973e + 4932 + 1.18973e + 4932i iki gerçekten oluşan karmaşık sayı türü

Aşağıdaki örnek, bir kayan nokta türü tarafından alınan depolama alanını ve aralık değerlerini yazdırır -

import std.stdio;

int main() { 
   writeln("Length in bytes: ", float.sizeof); 

   return 0; 
}

Yukarıdaki programı derleyip çalıştırdığınızda, Linux'ta aşağıdaki sonucu verir -

Length in bytes: 4

Karakter Tipleri

Aşağıdaki tablo, depolama boyutları ve amacı ile birlikte standart karakter türlerini listeler.

Tür Depolama boyutu Amaç
kömür 1 bayt UTF-8 kod birimi
wchar 2 bayt UTF-16 kod birimi
dchar 4 bayt UTF-32 kod birimi ve Unicode kod noktası

Aşağıdaki örnek, bir karakter türü tarafından alınan depolama alanını yazdırır.

import std.stdio;

int main() {
   writeln("Length in bytes: ", char.sizeof);
   
   return 0;
}

Yukarıdaki programı derleyip çalıştırdığınızda, aşağıdaki sonucu verir -

Length in bytes: 1

Boşluk Tipi

Void türü, hiçbir değerin mevcut olmadığını belirtir. İki tür durumda kullanılır -

Sr.No. Türler ve Açıklama
1

Function returns as void

D'de değer döndürmeyen çeşitli işlevler vardır veya void döndürdüklerini söyleyebilirsiniz. Dönüş değeri olmayan bir işlevin dönüş türü geçersizdir. Örneğin,void exit (int status);

2

Function arguments as void

D'de herhangi bir parametre kabul etmeyen çeşitli fonksiyonlar vardır. Parametresi olmayan bir işlev geçersiz olarak kabul edebilir. Örneğin,int rand(void);

Boşluk türü bu noktada size anlaşılmayabilir, bu yüzden devam edelim ve bu kavramları ilerleyen bölümlerde ele alacağız.