Tôi hiện đang học D, và một trong những điều tôi tự hỏi là liệu D có cách sao chép các khả năng tạo mã của các ngôn ngữ JVM hay không.Tạo mã thời gian biên dịch trong D
Đây là kịch bản: Tôi có một đối tượng và tôi muốn tạo chuỗi dựa trên đối tượng cung cấp tên và tất cả các trường của nó. Trong Java/Scala, tôi có thể chỉ sử dụng phản chiếu, nhưng giả sử tốc độ là một vấn đề. Tôi có thể sử dụng một thư viện thế hệ bytecode để tự động tạo và biên dịch một lớp thực hiện điều này mà không cần phản ánh. Việc thực hiện sẽ phá vỡ để lặp qua các trường của đối tượng và lấy tên của nó thông qua đệ quy và sử dụng thông tin đó để tự động tạo Java (hoặc bytecode) truy cập trực tiếp vào các trường.
Nếu bạn không thích kịch bản đó vì nó yếu và/hoặc không thực tế, một số khác có thể thực tế hơn là tối ưu hóa đối tượng được tối ưu hóa.
Tôi đã xem các ví dụ về đánh giá thời gian biên dịch và/hoặc lập trình meta mẫu của D cho những thứ như tính toán trước chuỗi mã hóa tại thời gian biên dịch và các thuật toán đệ quy khác, nhưng có cách làm như thế này chỉ với ngôn ngữ và một trình biên dịch, hoặc bạn sẽ cần phát triển một trình tạo mã riêng biệt và chạy nó trước trình biên dịch để có được loại chức năng này?
Vui lòng, bạn có thể xem [this post] (http://stackoverflow.com/questions/11314596/listing-a-classs-methods-trough-mixin) không? – menjaraz