[SCALA] 스칼라에서 가변 인자를 사용하여
SCALA스칼라에서 가변 인자를 사용하여
나는 다음을 수행하는 방법을 알아 내려고 밖으로 내 머리를 찢어하고 있습니다 :
def foo(msf: String, o: Any, os: Any*) = {
println( String.format(msf, o :: List(os:_*)) )
}
나는 오와 별도로 운영 체제 서열과 방법을 선언해야 할 이유가있다. 기본적으로, (유형 목록의) 단일 개체의 매개 변수를 사용하여 호출 형식의 방법으로 끝낼. 시도 :
def foo(msf: String, o: Any, os: Any*) = {
println( String.format(msf, (o :: List(os:_*))).toArray )
}
나에게 유형의 오류를 제공합니다 :
나는 컴파일하지만 첫 번째 예제와 거의 같은 이유로 실패 캐스팅을 시도했습니다. 언제 시도
println(String.format(msg, (o :: List(os:_*)) :_* ))
이 암시 적 변환 모호성과 함께 컴파일에 실패 (any2ArrowAssoc 및 any2stringadd)
해결법
-
==============================
1.
def foo(msf: String, o: AnyRef, os: AnyRef*) = println( String.format(msf, (o :: os.toList).toArray : _* ))
-
==============================
2.
def foo(msf: String, o: AnyRef, os: AnyRef*) = println( String.format(msf, o :: os.toList : _* ) )
또는
def foo(msf: String, o: AnyRef, os: AnyRef*) = println( msf format (o :: os.toList : _* ) )
이 로케일 * 지원이 없지만 내가 많이, 후자를 선호합니다.
from https://stackoverflow.com/questions/1008783/using-varargs-from-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라 매크로의 정적 반환 형식 (0) | 2019.11.11 |
---|---|
[SCALA] 이 싱글 타입은 싱글 종류 증명할 수있는 동안 발생 타입의 클래스 인스턴스 (0) | 2019.11.11 |
[SCALA] 사용 기능에 통역으로 스칼라 파일을로드? (0) | 2019.11.11 |
[SCALA] 스칼라에서 대 부자 패턴 (0) | 2019.11.11 |
[SCALA] 어떻게 스칼라에서 적절한 널 안전 병합 연산자를 쓰기? (0) | 2019.11.11 |