유형이 Enum
인 varargs 매개 변수가있는 경우이 매개 변수의 기본값을 설정할 수 있습니까?스칼라에서 varargs 매개 변수의 기본값을 설정하는 방법은 무엇입니까?
def functionName(parameter: Enum* = defaultValue)
위의 defaultValue
은 어떻게해야합니까?
유형이 Enum
인 varargs 매개 변수가있는 경우이 매개 변수의 기본값을 설정할 수 있습니까?스칼라에서 varargs 매개 변수의 기본값을 설정하는 방법은 무엇입니까?
def functionName(parameter: Enum* = defaultValue)
위의 defaultValue
은 어떻게해야합니까?
당신은 할 것 :
와 매개 변수 섹션 1 '*'- 매개 변수는 0 인수를 전달하기에도 유효 할 수 없기 때문에
이 문장의 출처를 추가하십시오. –
[This] (https://github.com/scala/scala/blob/2.13.x/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala#L286)는 신뢰할 수있는 소스처럼 보입니다 :-). –
기본 인수를 할 수 없습니다 varargs 파라미터. 그러나 메서드 본문에 간단히 체크를 할 수 있습니다.
def functionName(parameter: Enum*) = {
val parameter0 = if (parameter.nonEmpty) parameter else Seq(defaultValue)
???
}
이것은 이미 언급 했으므로 직접 해킹 할 수 없으므로 해킹해야합니다. 이것은 또한 이상적인 솔루션은 아니지만이 다른 선택보다 더 해킹 같은 수 있습니다
def functionName(): Int = functionName(1, 2, 3)
def functionName(parameter: Int*): Int = parameter.sum
및 println(functionName())
분명히 6
모두 감사를 인쇄, 나는 일이 주위 알고있다. 난 그냥 기본적 으로이 작업을 수행 할 수 있는지 알고 싶습니다. 문제 해결됨. – kula0826