【发布时间】:2016-05-04 18:36:16
【问题描述】:
我想为未指定数量的函数参数创建一些函数
例如
scala> def test(fx: (String*) => Boolean, arg: String*): Boolean = fx(arg: _*)
test: (fx: String* => Boolean, arg: String*)Boolean
scala> def AA(arg1: String, arg2: String) :Boolean = {
println ("Arg1 : " + arg1 + " Arg2 : " + arg2)
true}
AA: (arg1: String, arg2: String)Boolean
scala> test(AA,"ASDF","BBBB")
<console>:10: error: type mismatch;
found : (String, String) => Boolean
required: String* => Boolean
test(AA,"ASDF","BBBB")
^
我该如何解决这个问题??
【问题讨论】:
-
有一些方法可以解决这个问题,但您确实意识到,当您传入
args不同数量的值时,您可能会在 runtime 遇到错误987654323@ 期望?你可以吗? -
另外,您能否更具体地说明您想要实现的目标?就目前而言,您的
test方法只是调用传递的函数,因此很难猜测为什么您不能直接调用该函数(因此很难提出任何可能更明智的替代方案)
标签: scala