[SCALA] 스칼라에서 가변 길이 인수 목록의 유형은 무엇입니까?
SCALA스칼라에서 가변 길이 인수 목록의 유형은 무엇입니까?
나는 다음과 같이 함수를 선언한다고 가정하자 :
def test(args: String*) = args mkString
인수의 유형은 무엇입니까?
해결법
-
==============================
1.이것은 인수 또는 짧은 가변 인자의 변수 숫자라고합니다. T는 T *를 나타내고 그것의 정지형 서열 [T]이다. 서열은 [T]는 그것이이 경우 scala.collection.mutable.WrappedArray [T]에 구현으로 이용 될 수 있기 때문에 인터페이스이다. REPL을 사용하는 것이 유용 할 수있는 그런 일을 찾으려면 :
이것은 인수 또는 짧은 가변 인자의 변수 숫자라고합니다. T는 T *를 나타내고 그것의 정지형 서열 [T]이다. 서열은 [T]는 그것이이 경우 scala.collection.mutable.WrappedArray [T]에 구현으로 이용 될 수 있기 때문에 인터페이스이다. REPL을 사용하는 것이 유용 할 수있는 그런 일을 찾으려면 :
// static type scala> def test(args: String*) = args test: (args: String*)Seq[String] // runtime type scala> def test(args: String*) = args.getClass.getName test: (args: String*)String scala> test("") res2: String = scala.collection.mutable.WrappedArray$ofRef
종종 가변 인자 [T] 대신 시퀀스 자체의 기능하는 서열의 요소를 전달하는 컴파일러 힌트 인 _ * 기호와 조합하여 사용된다 :
scala> def test[T](seq: T*) = seq test: [T](seq: T*)Seq[T] // result contains the sequence scala> test(Seq(1,2,3)) res3: Seq[Seq[Int]] = WrappedArray(List(1, 2, 3)) // result contains elements of the sequence scala> test(Seq(1,2,3): _*) res4: Seq[Int] = List(1, 2, 3)
from https://stackoverflow.com/questions/13205012/what-is-the-type-of-a-variable-length-argument-list-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 왜 스칼라는 재귀 함수의 반환 형식을 필요로 하는가? (0) | 2019.11.21 |
---|---|
[SCALA] 스파크 2.X와 스칼라 2.12를 사용하여 (0) | 2019.11.21 |
[SCALA] 순서의 서열의 내용에 관계없이 비교하는 API 방법이 있습니까? (0) | 2019.11.21 |
[SCALA] 그것은 스칼라에서 자바 8 스타일의 방법 참조를 사용할 수 있습니까? (0) | 2019.11.21 |
[SCALA] scala.collection.Seq <문자열>에서 변환 된 java.util.List <문자열> 자바 코드에서 (0) | 2019.11.21 |