Tôi chỉ nhận thấy rằng Scala có macro, nhưng tôi chưa bao giờ thấy bất kỳ mã nào sử dụng chúng. Họ cũng có vẻ khá khác với các macro tiền xử lý C và các loại tương tự. Đọc qua overview các macro, có vẻ như chúng không cung cấp bất kỳ thứ gì trước đây không thể có trong Scala. Dưới tiêu đề động lực, có một danh sách những thứ mà macro cho phép:Macro Scala, chúng được sử dụng ở đâu?
- ảo hóa Ngôn ngữ (quá tải/trọng ngữ nghĩa của các ngôn ngữ lập trình ban đầu để cho phép nhúng sâu của DSL),
- reification Chương trình (cung cấp các chương trình với phương tiện để kiểm tra mã riêng của họ),
- tự tối ưu hóa (tự áp dụng các tên miền cụ thể tối ưu hóa dựa trên chương trình reification),
- chương trình thuật toán xây dựng (thế hệ mã tẻ nhạt để viết với các tóm tắt được hỗ trợ bởi ngôn ngữ lập trình).
Sau đó trong menu, có những tính năng vĩ mô thực nghiệm, chẳng hạn như các macro loại, quasiquotes, macro untyped và thậm chí nhiều hơn nữa. Rõ ràng là có nhu cầu về điều này!
Tất cả những tính năng này có vẻ thú vị cho những người xây dựng thư viện rất tinh vi với sự hiểu biết mạnh mẽ về Scala. Nhưng macro có cung cấp cái gì đó cho nhà phát triển Scala trung bình không? Việc sử dụng các macro có làm cho mã Scala của tôi tốt hơn không?
Bạn có thể có một cái nhìn vào tờ giấy mới nhất của chúng tôi vạch ra một số các tập quán thú vị của macro: http://scalamacros.org/ paperstalks/2013-04-22-LetOurPowersCombine.pdf. –
Đây là một bài viết về trang web doc dành riêng: http://docs.scala-lang.org/overviews/macros/usecases.html –