이의이 질문을 위해 값을 만들어 보자 강조 이 함수의 속기를 쓸 수 있습니까? :스칼라는 최소한의 기능
a.map((x) => x)
내 솔루션이 작동하지 않습니다 :
a.map(_)
이의이 질문을 위해 값을 만들어 보자 강조 이 함수의 속기를 쓸 수 있습니까? :스칼라는 최소한의 기능
a.map((x) => x)
내 솔루션이 작동하지 않습니다 :
a.map(_)
첫 번째 속기 양식은 교환 법칙이 성립되는 곱셈에 지점이없는
a map (2*)
감사를 기록 할 수 있습니다.
(x) => x
의 경우 identity
기능이 필요합니다. 이것은 Predef에 정의되어 있으며 일반적이므로 형식 안전성을 확신 할 수 있습니다.
나는 당신이 교환 할 수 있다고 생각합니다. – Debilski
'x => x'는 4 문자이고'identity'는 8 문자입니다. 이것이 내가'정체성 '을 사용하지 않는 이유입니다. –
@debilski이 물건은 쉽게 알 수 없습니다! 키보드에 액세스하기위한 18 개월 된 싸움이있을 때가 아닙니다! –
이 사용 사례에는 identity
함수를 사용해야합니다.
a.map(identity)
identity
은 다음과 같이 scala.Predef에 정의되어
implicit def identity[A](x: A): A = x
a.map(_)
은 x => a.map(x)
이고 a.map(x => x)
이 아니기 때문에 a.map(_)
이 작동하지 않습니다. 매개 변수 대신 하나의 _
이 부분적으로 적용된 함수 인 을 나타 내기 때문에 이러한 현상이 발생합니다. 2*_
의 경우 익명 함수의 약어는 입니다. 이 두 가지 용도는 너무 가깝기 때문에 매우 혼란 스럽습니다.
별로 이해가되지 않습니까? 그것은 단지 NOP입니다. – delnan
이것은 단지 예입니다. 문맥 상 이해할 수 있습니다. – coubeatczech
스칼라에서 '_'설탕을 과용 (imho)하여 실제로 사람들이 언어를 선택하기 어려운 경우의 좋은 예입니다. – akauppi