gpt4 book ai didi

scala - scala : mystified by warning 中的模式匹配零参数函数

转载 作者:行者123 更新时间:2023-12-04 16:56:59 24 4
gpt4 key购买 nike

我在玩 Scala 的分布式 Actor 。非常好。

我有一个执行传入函数对象的服务器。
例如,客户有

object Tasks {
def foo = {Console.println("I am Foo")};
def bar = {Console.println("I am Bar");}
}

// In client actor...
...
server ! Tasks.foo _
...

服务器可以选择这些并使用 Actor 代码执行它们,例如
react {
case task:(()=>Unit) =>
task()

这一切都很好(这确实非常酷),但我对 scalac 输出的警告消息感到困惑。对于服务器代码:
warning: non variable type-argument Unit in type pattern is unchecked since it is eliminated by erasure
case task:(()=>Unit) =>
^

我怎样才能清除这个警告?

(我不太清楚 Unit 类型和 ()=>Unit 类型的零参数函数之间的区别。只是尝试匹配 task:Unit 中的 react 是无警告的,但实际上并没有匹配传入的任务。)

在 Debian 上使用 Scala 2.7.5,以及 Sun 的 Java6。

最佳答案

你真的很匹配这个:

case task:Function0[Unit] => task()

由于删除,Unit 在运行时不可见。
如果您真的不关心返回类型,则可以在 react 块中执行此操作:
case task:Function0[_] => task()

关于scala - scala : mystified by warning 中的模式匹配零参数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com