[SCALA] 스칼라가 예기치 않게 확장 기능에 대한 확인 유형 수없는
SCALA스칼라가 예기치 않게 확장 기능에 대한 확인 유형 수없는
이유는, 스칼라, 주어진 :
a = List(1, 2, 3, 4)
def f(x : String) = { x }
하지
a.map(_.toString)
작동하지만
a.map(f(_.toString))
오류를 줄
missing parameter type for expanded function ((x$1) => x$1.toString)
해결법
-
==============================
1.음 ... F ()는 매개 변수로 문자열을 사용합니다. 구축물의 _.toString는 A 형이있다 <: 모든 => 문자열. 실시 예는 상기 체크를 입력하지 않도록 함수 f ()는 문자열의 형식을 기대하고있다. 스칼라는이 경우에 친화적 인 것 같다 사용자에게 또 다른 기회를 제공합니다. 오류 메시지의 의미 ". 그것의 뭔가 내가 추측 할 수없는 경우이 알고리즘 내 타입 추론으로, 그것은 수도 컴파일의 형식을 넣어하지 않습니다."
음 ... F ()는 매개 변수로 문자열을 사용합니다. 구축물의 _.toString는 A 형이있다 <: 모든 => 문자열. 실시 예는 상기 체크를 입력하지 않도록 함수 f ()는 문자열의 형식을 기대하고있다. 스칼라는이 경우에 친화적 인 것 같다 사용자에게 또 다른 기회를 제공합니다. 오류 메시지의 의미 ". 그것의 뭔가 내가 추측 할 수없는 경우이 알고리즘 내 타입 추론으로, 그것은 수도 컴파일의 형식을 넣어하지 않습니다."
이 경우의 긴 형식 익명 함수를 작성하는 것, 즉 a.map (N => F (n.toString)). 이것은 그러나 와일드 카드 기호, 형식 유추의 제한이 없습니다. 당신이 a.map (F (_. toString))를 작성할 때 기본적으로는 _.toString 그렇지 않으면이 엄청난 모호함으로 이어질 것입니다, 그것을 찾을 수있는 가장 가까운 괄호 안의 익명 함수로 확장됩니다. F 같은 (g (_. toString))를 상상해보십시오. 하는가이 평균 온도 (g (X => x.toString)) 또는 F (X => g (x.toString))? 더 나쁜 모호성 여러 중첩 된 함수 호출에 발생하는 것입니다. 상술 한 바와 같이, 스칼라 형 검사기 따라서, 대부분의 논리 용액 걸린다.
Nitpick은 : 코드의 첫 번째 라인은 발해야 = 목록 (1,2,3,4) :.
from https://stackoverflow.com/questions/1545168/scala-unexpectedly-not-being-able-to-ascertain-type-for-expanded-function by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라의 문자열로 문자열을 분할하는 방법 (0) | 2019.11.22 |
---|---|
[SCALA] DList은 무엇인가? (0) | 2019.11.22 |
[SCALA] 어떻게 생성자 인자를 확인하고 예외를 던지거나 스칼라의 기본 생성자에서 주장을 만들려면? (0) | 2019.11.21 |
[SCALA] 스파크 벡터 열에 첨부 메타 (0) | 2019.11.21 |
[SCALA] 스칼라 - 케이스 클래스를 사용하여 없음 TypeTag 가능한 예외 TypeTag을 얻기 위해 시도? (0) | 2019.11.21 |