gpt4 book ai didi

scala - 如何使用带有 Array[String] 元素的 String * 调用方法

转载 作者:行者123 更新时间:2023-12-04 22:00:16 24 4
gpt4 key购买 nike

假设我有一个方法

def f(s:String *) = s.foreach( x => println(x) )

现在我有一个数组:
val a = Array("1", "2", "3")

我如何调用 f带有 a 的元素作为参数?

编辑:

所以给出 a ,我想做以下事情:
f(a(0), a(1), a(2))  // f("1", "2", "3")

最佳答案

有一个运算符:

f(a: _*)

此操作在章节 4.6.2 The Scala Language Specification Version 2.9 的重复参数中定义并在 6.6 函数应用中进一步解释:

The last argument in an application may be marked as a sequence argument, e.g. e : _*. Such an argument must correspond to a repeated parameter (§4.6.2) of type S * [...]. Furthermore, the type of e must conform to scala.Seq[T], for some type T which conforms to S. In this case, the argument list is transformed by replacing the sequence e with its elements.



顺便说一句你的 f功能可以简化:
def f(s:String *) = s foreach println

或者更好(不鼓励使用等号,因为它表明该方法实际上返回了一些东西,但是它“仅”返回 Unit ):
def f(s:String *) {s foreach println}

关于scala - 如何使用带有 Array[String] 元素的 String * 调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com