Lập trình D - Chữ
Các giá trị không đổi được nhập vào chương trình như một phần của mã nguồn được gọi là literals.
Chữ số có thể thuộc bất kỳ kiểu dữ liệu cơ bản nào và có thể được chia thành Chữ số nguyên, Chữ số dấu chấm động, Ký tự, Chuỗi và Giá trị Boolean.
Một lần nữa, các ký tự được xử lý giống như các biến thông thường ngoại trừ việc giá trị của chúng không thể được sửa đổi sau khi định nghĩa.
Chữ số nguyên
Một ký tự số nguyên có thể là một trong các loại sau:
Decimal sử dụng lưu lại số bình thường với chữ số đầu tiên không được là 0 vì chữ số đó được dành riêng để chỉ ra hệ bát phân. Điều này không bao gồm 0 riêng của nó: 0 là số không.
Octal sử dụng 0 làm tiền tố cho số.
Binary sử dụng 0b hoặc 0B làm tiền tố.
Hexadecimal sử dụng 0x hoặc 0X làm tiền tố.
Một chữ số nguyên cũng có thể có một hậu tố là sự kết hợp của U và L, tương ứng là không dấu và dài. Hậu tố có thể là chữ hoa hoặc chữ thường và có thể theo bất kỳ thứ tự nào.
Khi bạn không sử dụng hậu tố, trình biên dịch sẽ tự chọn giữa int, uint, long và ulong dựa trên độ lớn của giá trị.
Dưới đây là một số ví dụ về các ký tự số nguyên -
212 // Legal
215u // Legal
0xFeeL // Legal
078 // Illegal: 8 is not an octal digit
032UU // Illegal: cannot repeat a suffix
Sau đây là các ví dụ khác về các loại chữ số nguyên khác nhau -
85 // decimal
0213 // octal
0x4b // hexadecimal
30 // int
30u // unsigned int
30l // long
30ul // unsigned long
0b001 // binary
Chữ nổi dấu chấm động
Các ký tự dấu phẩy động có thể được chỉ định trong hệ thập phân như trong 1.568 hoặc trong hệ thập lục phân như trong 0x91.bc.
Trong hệ thập phân, một số mũ có thể được biểu diễn bằng cách thêm ký tự e hoặc E và một số sau đó. Ví dụ: 2.3e4 có nghĩa là "2,3 nhân 10 thành lũy thừa của 4". Một ký tự “+” có thể được chỉ định trước giá trị của số mũ, nhưng nó không có tác dụng. Ví dụ 2.3e4 và 2.3e + 4 giống nhau.
Ký tự “-” được thêm vào trước giá trị của số mũ thay đổi nghĩa là "chia cho 10 thành lũy thừa của". Ví dụ, 2,3e-2 có nghĩa là "2,3 chia cho 10 thành lũy thừa của 2".
Trong hệ thập lục phân, giá trị bắt đầu bằng 0x hoặc 0X. Số mũ được xác định bởi p hoặc P thay vì e hoặc E. Số mũ không có nghĩa là "10 theo lũy thừa của", mà là "2 theo lũy thừa của". Ví dụ: P4 trong 0xabc.defP4 có nghĩa là "abc.de nhân 2 với lũy thừa của 4".
Dưới đây là một số ví dụ về các ký tự dấu phẩy động -
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.
Theo mặc định, kiểu của một ký tự dấu phẩy động là kép. F và F có nghĩa là phao, và thông số L có nghĩa là thực.
Boolean Literals
Có hai nghĩa đen Boolean và chúng là một phần của từ khóa D tiêu chuẩn -
Một giá trị của true đại diện cho sự thật.
Một giá trị của false đại diện cho sai.
Bạn không nên coi giá trị của true bằng 1 và giá trị của false bằng 0.
Ký tự chữ
Các ký tự ký tự được đặt trong dấu ngoặc kép.
Một chữ ký tự có thể là một ký tự thuần túy (ví dụ: 'x'), một chuỗi thoát (ví dụ: '\ t'), ký tự ASCII (ví dụ: '\ x21'), ký tự Unicode (ví dụ: '\ u011e') hoặc như ký tự được đặt tên (ví dụ: '\ ©', '\ ♥', '\ €').
Có một số ký tự trong D khi đứng trước dấu gạch chéo ngược, chúng sẽ có ý nghĩa đặc biệt và chúng được dùng để biểu thị như dòng mới (\ n) hoặc tab (\ t). Tại đây, bạn có danh sách một số mã trình tự thoát như vậy -
Trình tự thoát | Ý nghĩa |
---|---|
\\ | \ tính cách |
\ ' | ' tính cách |
\ " | " tính cách |
\? | ? tính cách |
\ a | Cảnh báo hoặc chuông |
\ b | Backspace |
\ f | Thức ăn dạng |
\ n | Dòng mới |
\ r | Vận chuyển trở lại |
\ t | Tab ngang |
\ v | Tab dọc |
Ví dụ sau đây cho thấy một số ký tự thoát -
import std.stdio;
int main(string[] args) {
writefln("Hello\tWorld%c\n",'\x21');
writefln("Have a good day%c",'\x21');
return 0;
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Hello World!
Have a good day!
Chuỗi chữ
Các ký tự chuỗi được đặt trong dấu ngoặc kép. Một chuỗi chứa các ký tự tương tự như các ký tự: ký tự thuần túy, chuỗi thoát và ký tự phổ quát.
Bạn có thể ngắt một dòng dài thành nhiều dòng bằng cách sử dụng các ký tự chuỗi và phân tách chúng bằng cách sử dụng khoảng trắng.
Dưới đây là một số ví dụ về chuỗi ký tự -
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);
}
Trong ví dụ trên, bạn có thể thấy việc sử dụng q "MY_DELIMITER MY_DELIMITER" để biểu thị các ký tự nhiều dòng. Ngoài ra, bạn có thể thấy q {} đại diện cho chính một câu lệnh ngôn ngữ D.