如果我有Enum
类型的varargs参数,我可以为此参数设置默认值吗?
def functionName(parameter: Enum* = defaultValue)
我应该为上面的defaultValue
做些什么?
答案 0 :(得分:1)
正如已经提到的那样,你不能直接这样做,所以你必须要乱搞。这也不是一个理想的解决方案,但你可能比其他选择更喜欢这个hack:
def functionName(): Int = functionName(1, 2, 3)
def functionName(parameter: Int*): Int = parameter.sum
和println(functionName())
显然会打印6
答案 1 :(得分:0)
你不会:
带有“*”参数的参数部分 - 参数不允许有默认参数
答案 2 :(得分:0)
你不能因为传递0参数对varargs参数也有效。但你可以简单地检查方法体。
def functionName(parameter: Enum*) = {
val parameter0 = if (parameter.nonEmpty) parameter else Seq(defaultValue)
???
}