D Programlama - Değişmezler
Programda kaynak kodun bir parçası olarak yazılan sabit değerler denir literals.
Değişmezler temel veri türlerinden herhangi biri olabilir ve Tamsayı Sayılar, Kayan Nokta Sayıları, Karakterler, Dizeler ve Boole Değerlerine bölünebilir.
Yine, değişmez değerler, değerlerinin tanımlarından sonra değiştirilememesi dışında normal değişkenler gibi ele alınır.
Tamsayı Değişmezleri
Bir tamsayı değişmez değeri aşağıdaki türlerden biri olabilir -
Decimal normal sayı temsilini kullanır ve ilk basamak 0 olamaz, çünkü bu basamak sekizlik sistemi göstermek için ayrılmıştır. Bu, kendi başına 0'ı içermez: 0 sıfırdır.
Octal numara öneki olarak 0 kullanır.
Binary önek olarak 0b veya 0B kullanır.
Hexadecimal önek olarak 0x veya 0X kullanır.
Bir tamsayı değişmezi ayrıca, sırasıyla işaretsiz ve uzun için U ve L'nin bir kombinasyonu olan bir son eke sahip olabilir. Son ek, büyük veya küçük harf olabilir ve herhangi bir sırada olabilir.
Bir sonek kullanmadığınızda, derleyicinin kendisi değerin büyüklüğüne bağlı olarak int, uint, long ve ulong arasında seçim yapar.
İşte tamsayı değişmez değerlerine bazı örnekler -
212 // Legal
215u // Legal
0xFeeL // Legal
078 // Illegal: 8 is not an octal digit
032UU // Illegal: cannot repeat a suffix
Aşağıda, çeşitli tam sayı değişmez değerlerinin diğer örnekleri verilmiştir -
85 // decimal
0213 // octal
0x4b // hexadecimal
30 // int
30u // unsigned int
30l // long
30ul // unsigned long
0b001 // binary
Kayan Nokta Değişmezleri
Kayan noktalı değişmez değerler, 1.568'deki gibi ondalık sistemde veya 0x91.bc.'deki gibi onaltılık sistemde belirtilebilir.
Ondalık sistemde, bir üs e veya E karakteri ve ardından bir sayı eklenerek temsil edilebilir. Örneğin, 2.3e4 "2.3 çarpı 10 üzeri 4" anlamına gelir. Üssün değerinden önce bir “+” karakteri belirtilebilir, ancak hiçbir etkisi yoktur. Örneğin 2.3e4 ve 2.3e + 4 aynıdır.
Üssün değerinden önce eklenen “-” karakteri, anlamı "10'un üssüne bölünmesi" olarak değiştirir. Örneğin, 2.3e-2 "2.3 bölü 10’un 2’nin üssüne bölünmesi" anlamına gelir.
Onaltılık sistemde, değer 0x veya 0X ile başlar. Üs, e veya E yerine p veya P ile belirtilir. Üs, "10'un üssü" değil, "2'nin kuvveti" anlamına gelir. Örneğin, 0xabc.defP4'teki P4, "abc.de çarpı 2 üzeri 4" anlamına gelir.
İşte kayan noktalı değişmez değerlere bazı örnekler -
3.14159 // Legal
314159E-5L // Legal
510E // Illegal: incomplete exponent
210f // Illegal: no decimal or exponent
.e55 // Illegal: missing integer or fraction
0xabc.defP4 // Legal Hexa decimal with exponent
0xabc.defe4 // Legal Hexa decimal without exponent.
Varsayılan olarak, bir kayan nokta değişmezinin türü çifttir. F ve F float anlamına gelir ve L tanımlayıcısı gerçek anlamına gelir.
Boole Edebiyatları
İki Boole değişmez değeri vardır ve bunlar standart D anahtar sözcüklerinin parçasıdır -
Bir değer true doğruyu temsil ediyor.
Bir değer false yanlışı temsil ediyor.
Doğru değerini 1'e ve yanlış değerini 0'a eşit olarak düşünmemelisiniz.
Karakter Değişmezleri
Karakter değişmezleri tek tırnak içine alınır.
Bir karakter değişmezi düz bir karakter (ör. "X"), bir kaçış dizisi (ör. "\ T"), ASCII karakteri (ör. "\ X21"), Unicode karakteri (ör. "\ U011e") veya adlandırılmış karakter olarak (örneğin '\ ©', '\ ♥', '\ €').
D'de ters eğik çizgiden önce geldiklerinde özel anlamlara sahip olacakları ve satırsonu (\ n) veya sekme (\ t) gibi temsil etmek için kullanılan belirli karakterler vardır. Burada, bu tür kaçış dizisi kodlarının bir listesi var -
Kaçış dizisi | Anlam |
---|---|
\\ | \ karakteri |
\ ' | karakter |
\ " | "karakteri |
\? | ? karakter |
\ a | Uyarı veya zil |
\ b | Geri tuşu |
\ f | Form besleme |
\ n | Yeni hat |
\ r | Satırbaşı |
\ t | Yatay sekme |
\ v | Dikey sekme |
Aşağıdaki örnekte birkaç kaçış dizisi karakteri gösterilmektedir -
import std.stdio;
int main(string[] args) {
writefln("Hello\tWorld%c\n",'\x21');
writefln("Have a good day%c",'\x21');
return 0;
}
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
Hello World!
Have a good day!
Dize Değişmezleri
Dize değişmezleri çift tırnak içine alınır. Bir dize, karakter değişmezlerine benzer karakterler içerir: düz karakterler, kaçış dizileri ve evrensel karakterler.
Dize değişmezlerini kullanarak uzun bir satırı birden çok satıra bölebilir ve boşlukları kullanarak ayırabilirsiniz.
İşte dize değişmezlerine bazı örnekler -
import std.stdio;
int main(string[] args) {
writeln(q"MY_DELIMITER
Hello World
Have a good day
MY_DELIMITER");
writefln("Have a good day%c",'\x21');
auto str = q{int value = 20; ++value;};
writeln(str);
}
Yukarıdaki örnekte, çok satırlı karakterleri temsil etmek için q "MY_DELIMITER MY_DELIMITER" kullanımını bulabilirsiniz. Ayrıca, bir D dili ifadesinin kendisini temsil etmek için q {} 'yu görebilirsiniz.