Tôi đang chơi với các diễn viên phân tán của scala. Rất đẹp.Mẫu khớp với các hàm không đối số trong scala: được cảnh báo bằng cách cảnh báo
Tôi có một máy chủ thực hiện các đối tượng hàm đến. Ví dụ, khách hàng có
object Tasks {
def foo = {Console.println("I am Foo")};
def bar = {Console.println("I am Bar");}
}
// In client actor...
...
server ! Tasks.foo _
...
Và máy chủ có thể chọn những lên và thực hiện chúng với mã diễn viên như
react {
case task:(()=>Unit) =>
task()
bài này hoạt động độc đáo (mà là rất rất mát mẻ thực sự) nhưng tôi m bị bí ẩn bởi một thông báo cảnh báo đầu ra bởi scalac
cho mã máy chủ:
warning: non variable type-argument Unit in type pattern is unchecked since it is eliminated by erasure
case task:(()=>Unit) =>
^
Làm cách nào để làm sạch cảnh báo này?
(tôi khá rõ ràng về sự khác biệt giữa các loại Unit
, và loại ()=>Unit
chức năng zero-tranh cãi. Chỉ cần cố gắng để phù hợp với task:Unit
trong react
được cảnh báo miễn phí, nhưng thực sự không phù hợp với nhiệm vụ đến .)
Sử dụng Scala 2.7.5 trên Debian, với Java6 của Mặt trời.