[SCALA] 스칼라 람다 함수에서 _의 사용
SCALA스칼라 람다 함수에서 _의 사용
내가 할 수있는 사람이 왜 설명해 주시겠습니까 :
a.mapValues(_.size)
대신에
a.mapValues(x => x.size)
하지만 난 할 수 없어
a.groupBy(_)
대신의
a.groupBy(x => x)
해결법
-
==============================
1.여기를 쉽게되지 않습니다 :
여기를 쉽게되지 않습니다 :
a.groupBy(_)
그러나이 같은에서 그것을보고 쉽게 :
a.mkString("<", _, ">")
나는 부분적으로 방법 / 함수를 적용하고 있습니다. 나는 일부 매개 변수 (첫 번째와 마지막)에 적용, 나는 다음과 같은 새로운 기능을지고있어, 그래서 적용되지 않은 두 번째 매개 변수를 떠날거야 :
x => a.mkString("<", x, ">")
첫 번째 예는 유일한 매개 변수가 부분적으로 적용되는 단지 특별한 경우입니다. 당신이 표현에 밑줄을 사용하는 경우, 그러나, 익명 함수의 위치 매개 변수를 의미합니다.
a.mapValues(_.size) a.mapValues(x => x.size)
익명 함수에서 그들 때문에 모두 결과, 혼동하기가 쉽다. 실제로 같은 (또한 익명의 함수 임)에있어서 값으로하는 방법으로 변환하는 데 사용되는 제 밑줄이있다 :
a.groupBy _
-
==============================
2.당신이 a.groupBy (_)을 쓸 때 컴파일러는 익명 함수로 이해한다 :
당신이 a.groupBy (_)을 쓸 때 컴파일러는 익명 함수로 이해한다 :
x => a.groupBy(x)
스칼라 사양에 따라 §6.23 표현식에서 밑줄 자리는 익명의 매개 변수로 대체된다. 그래서:
이 (X)의 종류를 추정 할 수 없기 때문에 식 X => a.groupBy (X)는 컴파일러를 혼동한다. A가 E 형 요소의 일부 집합 인 경우, 기대하는 컴파일러 형 (E)의 함수 => K 수 있지만, K는 유추 될 수없는 입력 X ...
from https://stackoverflow.com/questions/7673545/usage-of-in-scala-lambda-functions by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 볼품에 반복적으로 이기종 목록에 케이스 클래스를 변환하려고 이상한 행동 (0) | 2019.11.07 |
---|---|
[SCALA] 어떻게 디스크에 CSV로 스파크 DataFrame을 저장? (0) | 2019.11.07 |
[SCALA] 자바 scala.collection.immutable.Map에 java.util.HashMap에 변환 (0) | 2019.11.06 |
[SCALA] 어떻게 SBT 명령 내부 설정을 변경하려면? (0) | 2019.11.06 |
[SCALA] 왜 싱글 톤 객체 지향 더 많은 개체입니까? (0) | 2019.11.06 |