Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala:如何使用变量参数列表定义匿名函数?_Scala_Anonymous Function - Fatal编程技术网

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中,如何定义接受可变数量参数的匿名函数

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)太多