Khi tôi đang thiết kế các đối tượng không thay đổi, các kiểu chữ thường vô cùng tiện dụng vì phương thức tự động tạo ra copy
.'bản sao' cho các trường hợp không phải là trường hợp?
Nhưng trường hợp lớp học có vấn đề riêng của họ: họ không nên được thừa hưởng từ và họ cung cấp cho bạn một vắt ngay cả khi bạn không muốn một.
Vì vậy, đôi khi tôi phải sử dụng một lớp Scala trong vườn. Vấn đề là sau đó tôi phải viết API bất biến của riêng tôi, có thể khá lặp đi lặp lại:
class Debt(principalBalance: Double, name: String, endDate: LocalDate) {
def withNewPrincipalBalance(bal: Double) = new Debt(bal, name, endDate)
}
Có cách nào để mở rộng hơn không? Có một plugin trình biên dịch tôi có thể sử dụng?
xem http://stackoverflow.com/q/3900307/203968 – oluies