Record Helper
Dễ dàng và nhanh chóng xử lí mọi kiểu tương tự như một class
Dễ dàng và nhanh chóng xử lí mọi kiểu tương tự như một class
Record Helper là một tính năng mới của Delphi, nó cho phép lập trình nhanh hơn với mã dễ hiểu và ngắn gọn hơn. Record Helper giúp cho mọi kiểu dữ liệu hay số đều có thể sử dụng như một class.
Lấy ví dụ đoạn code chuyển số thành chữ sử dụng hàm IntToStr trong unit System.SysUtils
var i: Integer;
begin
WriteLn(IntToStr(i));
end.
Và đây là đoạn code sử dụng Record Helper cho kiểu số bất kì
var i: Integer;
begin
WriteLn(i.ToString);
end.
Dễ thấy đoạn thứ hai dễ viết hơn và dễ đọc hơn nhiều so với đoạn trên.
Lưu ý: Để sử dụng record helper, bạn cần khai báo thư viện chứa nó. Nếu không khai báo, delphi sẽ không tìm thấy helper để sử dụng.
Delphi cung cấp khả năng viết mã khá linh hoạt, đơn cử như việc chuyển đổi hằng số.
const
A = 10;
begin
Write(A.ToString);
end.
Hoặc chuyển đổi trực tiếp
begin
WriteLn(10.ToString);
WriteLn('123'.ToInteger);
end.
Có thể sử dụng Record Helper cho bất kì kiểu dữ liệu nào có sẵn.
Mẹo: Sử dụng code insight sau khi nhấn dấu chấm để lấy danh sách các phương thức mà Record Helper của kiểu đó cho phép sử dụng.
Bên cạnh việc sử dụng các phương thức có sẵn, ta cũng có thể xây dựng một số phương thức tùy chỉnh cho Record Helper.
Ví dụ sau cho phép thêm hàm IsBigger100 vào kiểu Integer để kiểm tra xem số có lớn hơn 100 hay không.
type
TIntHelper = record helper for Integer
function IsBigger100: boolean;
end;
function TIntHelper.IsBigger100: boolean;
begin
Result := Self > 100;
end;
var
A: Integer;
begin
Write('Nhap mot so= ');
ReadLn(A);
if A.IsBigger100 = true then
Write('Lon hon 100')
else
Write('Khong lon hon 100');
end.
Đoạn code chia làm 3 phần tương ứng với ba đoạn:
Chú ý đến phần instantation, chúng ta sử dụng từ khóa Self để chỉ rằng đó là đối tượng được nhắm đến, là một số Integer, là số A trong phần 3.