gpt4 book ai didi

Scala:方法参数String *和Array [String]之间有区别吗

转载 作者:行者123 更新时间:2023-12-01 08:49:29 26 4
gpt4 key购买 nike

方法参数String*Array[String]有区别吗?

控制台:

scala> def main(args: Array[String]): Unit = {}
main: (args: Array[String])Unit

scala> def main(args: String*): Unit = {}
main: (args: String*)Unit

代码 1:

object Example {
def main(args: Array[String]): Unit = {
println("Hello")
}
}

>> Hello

代码 2:

object Example {
def main(args: String*): Unit = {
println("Hello")
}
}

>> Exception in thread "main" java.lang.NoSuchMethodException: Example.main([Ljava.lang.String;)
at java.lang.Class.getMethod(Class.java:1786)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:126)

最佳答案

是的,

String* 是一个可变参数,它接受任意数量的字符串,这些字符串将作为 Seq[String] 传递给方法。

Array[String] 接收单个字符串数组。

如果你有一个字符串序列你想作为 String* 传递,你不能直接这样做,但是你可以使用 将序列“分解”出来传递它>:_* 类型归属。

def varArg(input: String*){}

val strings = Seq("hello", "world")
varArg(strings:_*)

关于Scala:方法参数String *和Array [String]之间有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45970931/

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