Tôi có một chương trình với rất nhiều boilerplate (đó là, đáng buồn, không thể giảm ngay cả bởi cơ chế Scala). Nhưng nếu có một cách để tạo ra các lớp cấp cao phức tạp với một macro, tất cả các bản mẫu đó sẽ biến mất. Ví dụ:Có thể tạo một số lớp cấp cao nhất với một lời gọi macro trong scala 2.10 không?
package org.smth
generate(params)
// becomes
class A { ... }
object B { ... }
case class C { ... }
Có thể sử dụng macro Scala 2.10 không?
Nhưng có thể tạo các lớp bên trong trong macro phương thức ngay bây giờ không? Giống như 'val a = {class A {...}; new A smth} '? – Rogach
Có thể, nhưng các lớp địa phương không cần phải được đăng ký trong một bảng ký hiệu toàn cầu, vì vậy nó đơn giản. –
Bất kỳ ví dụ mã/gist nào? – ZiglioUK