Kotlin có tuyệt vời type safe builders mà làm cho có thể tạo ra của dsl nhưLàm cách nào để các nhà xây dựng an toàn kiểu Kotlin làm việc tại Scala?
html {
head {
title("The title")
body {} // compile error
}
body {} // fine
}
khiếp sợ này là bạn không thể đặt thẻ ở những nơi không hợp lệ, giống như cơ thể bên trong đầu, tính năng tự động hoàn thành cũng làm việc đúng cách.
Tôi quan tâm nếu điều này có thể đạt được ở Scala. Làm thế nào để có được nó?
thẻ mở rộng không đáp ứng yêu cầu về an toàn loại. – Yaroslav
@Yaroslav Vâng, bạn nói đúng. Và nó không có vẻ là một cách để làm cho api gọn gàng, ít nhất là cho bây giờ. Một số ngày sẽ có Dotty với các loại hàm ngầm định http://dotty.epfl.ch/blog/2016/12/05/implicit-function-types.html#how-to-remove-boilerplate. Họ sẽ làm chính xác những gì bạn cần. –
@Yaroslav có thêm một lib gọi là sung sướng https://github.com/propensive/rapture. Và bạn có thể triển khai các mẫu an toàn loại. Các tài liệu là tinh khiết nhưng nó hoạt động. Dưới đây là ví dụ về trang web https://github.com/propensive/contextual-web/blob/master/src/main/scala/main.scala –