假设我有一个方法
def f(s:String *) = s.foreach( x => println(x) )
Run Code Online (Sandbox Code Playgroud)
现在我有一个数组:
val a = Array("1", "2", "3")
Run Code Online (Sandbox Code Playgroud)
如何f使用aas参数的元素调用?
编辑:
所以a,我想做以下事情:
f(a(0), a(1), a(2)) // f("1", "2", "3")
Run Code Online (Sandbox Code Playgroud)
Tom*_*icz 15
有一个运营商:
f(a: _*)
Run Code Online (Sandbox Code Playgroud)
此操作在章节4.6.2 Scala语言规范版本2.9的重复参数中定义,并在6.6函数应用程序中进一步说明:
应用程序中的最后一个参数可以标记为序列参数,例如
e : _*.这样的论证必须对应于S *[...] 类型的重复参数(第4.6.2节) .此外,电子商务类型必须符合scala.Seq[T],对于某些类型T的符合S.在这种情况下,通过将序列e替换为其元素来转换参数列表.
BTW你的f功能可以简化:
def f(s:String *) = s foreach println
Run Code Online (Sandbox Code Playgroud)
或者更好(不鼓励等号,因为它表明该方法实际上返回了一些东西,但它"只"返回Unit):
def f(s:String *) {s foreach println}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |