gpt4 book ai didi

scala - 如何将带星号的参数传递给下一个方法?

转载 作者:行者123 更新时间:2023-12-04 17:38:18 25 4
gpt4 key购买 nike

scala> class A (s: String*) { val l: ListBuffer[String] = ListBuffer[String](s) }
<console>:8: error: type mismatch;
found : String*
required: String
class A(s: String*) {val l: ListBuffer[String] = ListBuffer[String](s)}

为什么不能传递参数 s到 ListBuffer[String] 的 apply 方法,它是
def apply[A](elems: A*): CC[A] = { ... }

(方法 apply 来自 GenericCompanion.scala )

代码 ListBuffer[String]("foo", "bar")确实有效。但似乎我无法通过来自 s 的字符串参数列表。这也是 String* .

最佳答案

你需要告诉 Scala 解压 s :

ListBuffer[String](s: _*)

您也不需要显式类型:
scala> class A (s: String*) { val l = ListBuffer(s: _*) }
defined class A

关于scala - 如何将带星号的参数传递给下一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157491/

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