首页 > 解决方案 > Scala String* 类型(在函数 args 中)

问题描述

我有以下方法:

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

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

干杯!

标签: scalasyntax

解决方案


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

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

斯卡拉 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

推荐阅读