我希望能够定义这样的函数:
def paralellize(func: ⇒ Unit *) = {
func.par.foreach(_.apply())
}
但似乎Scala不喜欢它:
')' expected but identifier found.
def parallelize(func: => Unit *) = {
^
<console>:3: '=' expected but eof found.
我认为这是由于varargs和名称参数的结合。
我的目的是能够轻松地并行化任意代码:
parallelize(
{
println("a")
Thread.sleep(1000)
println("A")
},
{
println("b")
Thread.sleep(1000)
println("B")
}
)
答案 0 :(得分:4)
我不确定我是否完全理解你的问题,但是如果你想通过许多函数作为参数你可以尝试这样做
def paralellize(func: (() => Unit)* ) = {
func.par.foreach(_.apply())
}
答案 1 :(得分:0)
卡米尔答案的较短变化:
def paralellize(func: () => Unit* ) =
func.par.foreach(_.apply())