我有一个构建如此路径的函数:
def generatePath(arg1: String, arg2: String, arg3: String* = null) = {
Array(arg1, arg2, arg3).mkString("/")
}
该函数应返回如下内容:
generatePath("data", "g1")
"data/g1"
generatePath("data", "g1", "hello")
"data/g1/hello"
generatePath("data", "g1", "hello", "world", "yes")
"data/g1/hello/world/yes"
val additionalPaths: Array[String] = Array[String]("yahoo", "awesome")
generatePath("data", "g1", additionalPaths: _*)
"data/g1/yahoo/awesome"
我无法弄清楚如何让它发挥作用。我确实希望它能够省略arg3,arg3可以使用任意数量的参数,或者是一个扁平的Seq。
答案 0 :(得分:2)
只需删除默认值即可。 String*
也允许零长度列表。
def generatePath(arg1: String, arg2: String, arg3: String* ) = {
Array(arg1, arg2, arg3.mkString("/")).mkString("/")
}
println(generatePath("1", "2"))
println(generatePath("1", "2", "3"))
println(generatePath("1", "2", "3", "4"))