在 Scala 中,如何定义接受可变数量参数的匿名函数?
scala> def foo = (blah:Int*) => 3
<console>:1: error: ')' expected but identifier found.
def foo = (blah:Int*) => 3
^
看起来这是不可能的。在里面语言规范 http://www.scala-lang.org/docu/files/ScalaReference.pdf在第 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)