Mẫu (Templates)
Trong các ngôn ngữ lập trình hiện đại, có nhiều tính năng tích hợp sẵn giúp tránh việc trùng lặp mã, từ đó giảm thiểu số lượng lỗi và tăng năng suất của lập trình viên. Trong MQL5, các công cụ như vậy bao gồm hàm đã quen thuộc, các kiểu đối tượng hỗ trợ kế thừa (lớp và cấu trúc), macro tiền xử lý, và khả năng bao gồm tệp. Nhưng danh sách này sẽ không đầy đủ nếu thiếu các mẫu (templates).
Templates là một định nghĩa chung được tạo ra đặc biệt của một hàm hoặc kiểu đối tượng, từ đó trình biên dịch có thể tự động tạo ra các phiên bản hoạt động của hàm hoặc kiểu đối tượng đó. Các phiên bản kết quả chứa cùng một thuật toán nhưng hoạt động trên các biến thuộc các kiểu khác nhau, tương ứng với các điều kiện cụ thể khi sử dụng mẫu trong mã nguồn.
Đối với những người am hiểu C++, chúng ta lưu ý rằng các mẫu trong MQL5 không hỗ trợ nhiều tính năng của mẫu trong C++, cụ thể là:
- Tham số không phải là kiểu;
- Tham số có giá trị mặc định;
- Số lượng tham số thay đổi;
- Chuyên biệt hóa của lớp, cấu trúc và liên kết (toàn phần và từng phần);
- Template cho các mẫu.
Một mặt, điều này làm giảm tiềm năng của mẫu trong MQL5, nhưng mặt khác, nó đơn giản hóa việc học tài liệu cho những người chưa quen với các công nghệ này.