Mixin chuỗi

Biểu thức mixin thoạt nhìn tựa như eval trong JavaScript: nó biến đổi chuỗi đầu vào thành mã nguồn. Nhưng trong D, mixin chỉ xảy ra lúc biên dịch, và nó chỉ nhận đầu vào là chuỗi:

mixin("int b = 5");
assert(b == 5); // b bằng 5 đúng như mong đợi

mixin cũng có thể nhận đầu vào là các chuỗi được ghép hay phát sinh từ các biểu thức phức hợp, miễn là chuỗi kết quả không phụ thuộc vào các giá trị lúc chạy chương trình (runtime).

mixin cùng với CTFE trong phần kế tiếp giúp xây dựng các thư viện ấn tượng như Pegged là thư viện giúp sinh ra bộ phân rã ngữ pháp (grammar parser) từ chuỗi định nghĩa cú pháp trong mã nguồn.

Nâng cao

rdmd playground.d