Scala String* 类型(在函数 args 中)

标签 scala syntax

我有以下方法:

def m(a: String*) = { // ... }

我想知道此语法中星号 (*) 符号的用途是什么?我显然是 Scala 的新手。我用谷歌搜索,但可能是谷歌搜索错误的东西。任何帮助表示赞赏。

干杯!

最佳答案

它被称为“var args”(可变参数)。

def concat(strs: String*): String = strs.foldLeft("")(_ ++ _)

Scala REPL
scala> def concat(strs: String*): String = strs.foldLeft("")(_ ++ _)
concat: (strs: String*)String

scala> concat()
res6: String = ""

scala> concat("foo")
res7: String = foo

scala> concat("foo", " ", "bar")
res8: String = foo bar

关于Scala String* 类型(在函数 args 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51764399/

相关文章:

scala - 添加 "extends AnyVal"会导致 "type arguments do no conform"错误

java - 如何在scala代码中引用MyClass::new?

scala - 如何将 X => Option[R] 转换为 PartialFunction[X,R]

java - 实现继承的抽象方法?

javascript - 用于 Javascript 对象的位移运算符

scala - 在 Scala 中仅使用 foldRight、foldLeft 和 unfold 实现 map 功能

mysql - 具有嵌套连接和选择的 SQL 查询

php - 删除表时出现 SQL 语法错误

javascript - 石头剪刀布游戏错误,Javascript

git - 无法推送到 heroku