การเขียนโปรแกรม D - ตัวอักษร
ค่าคงที่ที่พิมพ์ลงในโปรแกรมเป็นส่วนหนึ่งของซอร์สโค้ดจะถูกเรียก literals.
ตัวอักษรสามารถเป็นข้อมูลพื้นฐานประเภทใดก็ได้และสามารถแบ่งออกเป็นเลขจำนวนเต็มเลขทศนิยมอักขระสตริงและค่าบูลีน
อีกครั้งตัวอักษรจะได้รับการปฏิบัติเช่นเดียวกับตัวแปรทั่วไปยกเว้นว่าไม่สามารถแก้ไขค่าได้หลังจากนิยามแล้ว
ตัวอักษรจำนวนเต็ม
ลิเทอรัลจำนวนเต็มสามารถเป็นประเภทต่อไปนี้ -
Decimal ใช้การรีเฟรชหมายเลขปกติโดยตัวเลขหลักแรกไม่สามารถเป็น 0 ได้เนื่องจากตัวเลขนั้นสงวนไว้สำหรับระบุระบบฐานแปดซึ่งไม่รวม 0 ด้วยตัวมันเอง: 0 คือศูนย์
Octal ใช้ 0 เป็นคำนำหน้าตัวเลข
Binary ใช้ 0b หรือ 0B เป็นคำนำหน้า
Hexadecimal ใช้ 0x หรือ 0X เป็นคำนำหน้า
ลิเทอรัลจำนวนเต็มยังสามารถมีส่วนต่อท้ายที่รวมกันของ U และ L สำหรับไม่ได้ลงนามและยาวตามลำดับ คำต่อท้ายสามารถเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กและสามารถเรียงลำดับอย่างไรก็ได้
เมื่อคุณไม่ใช้คำต่อท้ายคอมไพเลอร์เองจะเลือกระหว่าง int, uint, long และ ulong ตามขนาดของค่า
นี่คือตัวอย่างบางส่วนของตัวอักษรจำนวนเต็ม -
212 // Legal
215u // Legal
0xFeeL // Legal
078 // Illegal: 8 is not an octal digit
032UU // Illegal: cannot repeat a suffix
ต่อไปนี้เป็นตัวอย่างอื่น ๆ ของตัวอักษรจำนวนเต็มประเภทต่างๆ -
85 // decimal
0213 // octal
0x4b // hexadecimal
30 // int
30u // unsigned int
30l // long
30ul // unsigned long
0b001 // binary
Floating Point Literals
ลิเทอรัลจุดลอยตัวสามารถระบุได้ในระบบทศนิยมเช่น 1.568 หรือในระบบเลขฐานสิบหกเช่นเดียวกับ 0x91.bc
ในระบบเลขฐานสิบสามารถแสดงเลขชี้กำลังได้โดยการเพิ่มอักขระ e หรือ E และตัวเลขหลังจากนั้น ตัวอย่างเช่น 2.3e4 หมายถึง "2.3 คูณ 10 ยกกำลัง 4" อาจมีการระบุอักขระ“ +” ก่อนค่าของเลขชี้กำลัง แต่ไม่มีผลใด ๆ ตัวอย่างเช่น 2.3e4 และ 2.3e + 4 จะเหมือนกัน
อักขระ“ -” ที่เพิ่มก่อนค่าของเลขชี้กำลังจะเปลี่ยนความหมายเป็น "หารด้วย 10 ยกกำลัง" ตัวอย่างเช่น 2.3e-2 หมายถึง "2.3 หารด้วย 10 ยกกำลัง 2"
ในระบบเลขฐานสิบหกค่าจะเริ่มต้นด้วย 0x หรือ 0X เลขชี้กำลังถูกระบุด้วย p หรือ P แทนที่จะเป็น e หรือ E เลขชี้กำลังไม่ได้หมายถึง "10 ยกกำลัง" แต่เป็น "2 ยกกำลังของ" ตัวอย่างเช่น P4 ใน 0xabc.defP4 หมายถึง "abc.de คูณ 2 ยกกำลัง 4"
นี่คือตัวอย่างบางส่วนของตัวอักษรทศนิยม -
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.
ตามค่าเริ่มต้นประเภทของลิเทอรัลจุดลอยตัวจะเป็นสองเท่า ค่าเฉลี่ยค่า f และ F และตัวระบุ L หมายถึงจริง
ตัวอักษรบูลีน
มีลิเทอรัลบูลีนสองตัวและเป็นส่วนหนึ่งของคีย์เวิร์ด D มาตรฐาน -
ค่าของ true เป็นตัวแทนของความจริง
ค่าของ false เป็นตัวแทนของเท็จ
คุณไม่ควรพิจารณาค่าของจริงเท่ากับ 1 และค่าของเท็จเท่ากับ 0
ตัวอักษร
ตามตัวอักษรอยู่ในเครื่องหมายคำพูดเดี่ยว
อักขระลิเทอรัลสามารถเป็นอักขระธรรมดา (เช่น 'x'), ลำดับหลีก (เช่น '\ t'), อักขระ ASCII (เช่น '\ x21'), อักขระ Unicode (เช่น '\ u011e') หรือ เป็นอักขระที่มีชื่อ (เช่น '\ ©', '\ ♥', '\ €')
มีอักขระบางตัวใน D เมื่อนำหน้าด้วยแบ็กสแลชซึ่งจะมีความหมายพิเศษและใช้แทนเช่น newline (\ n) หรือ tab (\ t) ที่นี่คุณมีรายการรหัสลำดับการหลบหนีดังกล่าว -
ลำดับการหลบหนี | ความหมาย |
---|---|
\\ | \ อักขระ |
\ ' | 'ตัวละคร |
\ " | "ตัวละคร |
\? | เหรอ? ตัวละคร |
\ ก | แจ้งเตือนหรือกระดิ่ง |
\ b | Backspace |
\ ฉ | ฟีดรูปแบบ |
\ n | ขึ้นบรรทัดใหม่ |
\ r | การกลับรถ |
\ t | แท็บแนวนอน |
\ v | แท็บแนวตั้ง |
ตัวอย่างต่อไปนี้แสดงอักขระลำดับ Escape เพียงไม่กี่ตัว -
import std.stdio;
int main(string[] args) {
writefln("Hello\tWorld%c\n",'\x21');
writefln("Have a good day%c",'\x21');
return 0;
}
เมื่อโค้ดด้านบนถูกคอมไพล์และเรียกใช้งานโค้ดจะได้ผลลัพธ์ดังนี้ -
Hello World!
Have a good day!
ตัวอักษรสตริง
ตัวอักษรสตริงอยู่ในเครื่องหมายคำพูดคู่ สตริงประกอบด้วยอักขระที่คล้ายกับตัวอักษรอักขระ: อักขระธรรมดาลำดับการหลีกและอักขระสากล
คุณสามารถแบ่งบรรทัดยาวออกเป็นหลายบรรทัดโดยใช้ตัวอักษรสตริงและแยกออกโดยใช้ช่องว่าง
นี่คือตัวอย่างบางส่วนของตัวอักษรสตริง -
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);
}
ในตัวอย่างข้างต้นคุณสามารถใช้ q "MY_DELIMITER MY_DELIMITER" เพื่อแสดงอักขระหลายบรรทัด นอกจากนี้คุณสามารถดู q {} เพื่อแสดงคำสั่งภาษา D ได้