Hãy để tôi giải thích bằng một ví dụ. Ở Delphi, bạn có thể viếtDelphi^Cú pháp: Tài liệu, ngụ ý, hoặc không có giấy tờ?
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = ^C then
ShowMessage('The user wants to copy something.')
else if Key = ^V then
ShowMessage('The user wants to paste.')
end;
để kiểm tra các lệnh bàn phím Ctrl + C và Ctrl + V. Trên thực tế, cú pháp tương tự hoạt động với Ctrl + A, trong đó A là bất kỳ ký tự nào và - tất nhiên - bạn cũng có thể sử dụng câu lệnh case
thay vì if
s. Bạn thậm chí có thể làm ShowMessage(^A)
, vì vậy, rõ ràng, ^A
được coi là char
.
Tuy nhiên, khi duyệt the official Delphi documentation, tôi không thể tìm thấy bất kỳ tham chiếu nào đến cú pháp này. Nhưng có lẽ cú pháp ^A
quá phổ biến đến mức nó được hiểu là một phần của định dạng tệp văn bản thuần túy cơ bản? Hay đơn giản nó là một tính năng không có giấy tờ của ngôn ngữ lập trình Delphi? (Lưu ý rằng các công trình trên thực tế được sử dụng trong mã nguồn RTL/VCL. Nhưng, tất nhiên, Embarcadero và Embarcadero một mình, được phép sử dụng các tính năng không có giấy tờ, nếu có.)
ai cũng có thể sử dụng tính năng không có giấy tờ –
@ David: OK, tôi đồng ý rằng vấn đề không phải là gần như là xấu như trong trường hợp của Windows API, ví dụ. –
Một số người trong số họ, thông tin chi tiết về lỗi không thích, như '^ [' (Esc), '^ @' (NUL) .. –