[SCALA] 구문 설탕 : _ * 방법 매개 변수로 서열을 치료
SCALA구문 설탕 : _ * 방법 매개 변수로 서열을 치료
난 그냥 웹 곳이 구조를 발견 :
val list = List(someCollection: _*)
_ * 무엇을 의미합니까? 이것은 몇 가지 메소드 호출 구문 설탕인가? 어떤 제약 조건 내 사용자 정의 클래스는이 구문 설탕을 활용할 수 있도록 만족해야합니까?
해결법
-
==============================
1.일반적으로, : 표기법은 일부 특정 유형으로 값을 확인하기 위해 컴파일러를 강제 형 귀속에 사용됩니다. 이 주조와 같은 꽤있다.
일반적으로, : 표기법은 일부 특정 유형으로 값을 확인하기 위해 컴파일러를 강제 형 귀속에 사용됩니다. 이 주조와 같은 꽤있다.
val b = 1 : Byte val f = 1 : Float val d = 1 : Double
이 경우에, 당신은 특별한 변수 인수 유형을 돌리는 것입니다. 이것은 가변 인자 매개 변수를 선언 서열 [T]를 서브 클래스 어떤 유형의 변수에 사용할 수있는 사용 별표 기호를 반영한다 :
def f(args: String*) = ... //varargs parameter, use as an Array[String] val list = List("a", "b", "c") f(list : _*)
-
==============================
2.즉 배열을 폭발 스칼라 구문입니다. 일부 기능은 가변 수의 인수를 취하고 추가 할 필요가 배열 전달 : 배열 인수 _ *.
즉 배열을 폭발 스칼라 구문입니다. 일부 기능은 가변 수의 인수를 취하고 추가 할 필요가 배열 전달 : 배열 인수 _ *.
-
==============================
3.인수 변수 (수) * 사용하여 정의된다. 예를 들어,
인수 변수 (수) * 사용하여 정의된다. 예를 들어,
데프 단어 수 (단어 : 문자열 *) =에 println (words.size)
단어 수는 매개 변수로 문자열을 기대
scala> wordcount("I") 1
하지만, 입력 파라미터로서 이상의 문자열을 수락 (_ * 타입 귀속 대한 필요)
scala> val wordList = List("I", "love", "Scala") scala> wordcount(wordList: _*) 3
from https://stackoverflow.com/questions/4176440/syntax-sugar-for-treating-seq-as-method-parameters by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 대신 필터 withFilter (0) | 2019.11.05 |
---|---|
[SCALA] 스칼라의 Iterable의 상위 N 요소를 얻을 수있는 간단한 방법 (0) | 2019.11.05 |
[SCALA] 고정 용량 및 사용자 정의 비교 사용해, PriorityQueue 구현이 있습니까? (0) | 2019.11.05 |
[SCALA] 어떻게 GROUPBY 후 수집에 값을 집계하는? (0) | 2019.11.05 |
[SCALA] 어떻게 만들고 스칼라에서 다차원 배열을 사용 하는가? (0) | 2019.11.05 |