Có thể lấy miền của một chức năng một phần trong Scala không?Làm thế nào để có được tên miền của một chức năng một phần trong Scala?
Ex:
val f: PartialFunction[Int, Unit] = {
case 1 => println("This is 1")
case 2 => println("This is 2")
}
Có cách nào để có được một cái gì đó như:
val list = f.getDomain
đó sẽ chỉ ra các giá trị 1 và 2?
Cập nhật: Tôi đang cố gắng xây dựng hệ thống thông báo (xe buýt sự kiện). Các thuê bao sẽ trông như thế này:
class SomeSubscriber extends Subscriber {
notifications {
case LoginEvent(date) => println("Login on " + date)
case LogoutEvent(date) => println("Logout on " + date)
case e: Notification[Any] => async {
println("Other notification: " + e)
ui {
println("UI in async! " + e)
}
}
}
}
Trong NotiticationService tôi (dispatcher sự kiện) Tôi muốn truy cập các sự kiện khai báo trong khối mỗi 'thông báo' vì vậy tôi có thể đẩy các thông báo tới các thuê bao. Làm thế nào tôi có thể làm điều đó?
Xin cảm ơn trước.
Tôi không thể thấy điều này có thể xảy ra như thế nào (trong một số lượng hợp lý của tính toán.) Hãy xem xét một hàm được xác định chỉ trên số nguyên tố (vì vậy getDomain sẽ cần trả về tất cả các số nguyên tố) –
Bạn có một điểm ở đó. Tôi đã nghĩ rằng trình biên dịch Scala sẽ có thể giúp tôi bằng cách nào đó (trong ví dụ của tôi nên dễ dàng lấy lại tên miền) .Thanks: – d4rkang3l
Nếu bạn muốn truy cập vào miền, sau đó sử dụng một 'Bản đồ' thay thế. – ziggystar