如果我有一个类型为 Enum
的 varargs 参数,我可以为此参数设置默认值吗?
def functionName(parameter: Enum* = defaultValue)
我应该为上述defaultValue
做些什么?
正如已经提到的,你不能直接做到这一点,所以你必须四处走动。这也不是一个理想的解决方案,但您可能比其他选择更喜欢这个黑客:
def functionName(): Int = functionName(1, 2, 3)
def functionName(parameter: Int*): Int = parameter.sum
println(functionName())
显然打印6
你不会:
带有"*"参数的参数部分不允许具有默认参数
你不能,
因为传递 0 参数对 varargs 参数也有效。但是,您可以简单地在方法主体中进行检查。
def functionName(parameter: Enum*) = {
val parameter0 = if (parameter.nonEmpty) parameter else Seq(defaultValue)
???
}