Scala:如何使用变量参数列表定义匿名函数?
在Scala中,如何定义接受可变数量参数的匿名函数Scala:如何使用变量参数列表定义匿名函数?,scala,anonymous-function,Scala,Anonymous Function,在Scala中,如何定义接受可变数量参数的匿名函数 scala> def foo = (blah:Int*) => 3 <console>:1: error: ')' expected but identifier found. def foo = (blah:Int*) => 3 ^ scala>def foo=(blah:Int*)=>3 :1:错误:“)”应为,但找到标识符。 def foo=
scala> def foo = (blah:Int*) => 3
<console>:1: error: ')' expected but identifier found.
def foo = (blah:Int*) => 3
^
scala>def foo=(blah:Int*)=>3
:1:错误:“)”应为,但找到标识符。
def foo=(blah:Int*)=>3
^
看起来这是不可能的。在第6.23章中的匿名函数中,语法不允许在类型后添加*
。在第4.6章函数声明和定义中,类型后面可以有一个*
但是,您可以做的是:
scala> def foo(ss: String*) = println(ss.length)
foo: (ss: String*)Unit
scala> val bar = foo _
bar: (String*) => Unit = <function1>
scala> bar("a", "b", "c")
3
scala> bar()
0
scala>def foo(ss:String*)=println(ss.length)
foo:(ss:String*)单位
scala>val bar=foo_
条:(字符串*)=>单位=
scala>bar(“a”、“b”、“c”)
3.
scala>bar()
0
这在Scala 2.12::13中对我不起作用:错误:trait Function1中的方法apply:(v1:Seq[String])单元的参数(3)太多