[SCALA] 스칼라에서 ETA 확장은 무엇입니까?
SCALA스칼라에서 ETA 확장은 무엇입니까?
나는 스칼라에 새로운 오전. 난 그냥 용어는 "ETA 확장"을 듣고 약은 함수 객체에 대한 방법을 확장하는 것을 의미 것을 알고있다. 그러나 나는 그 체계적으로 소개 SO에 몇 가지 자료를 찾을 수 있습니다.
나는 ETA 확장 스칼라에서 어떻게 작동하는지 궁금합니다. ETA 확장이 필요하다는 시나리오는 무엇인가? 어떻게 ETA 확장하는 것은 스칼라에서 구현된다?
나는 대략 이런 경우에 알고 :
def someMethod(x: Int): Int = x * x
것으로 someMethod _는 대략 같은 새로운 함수 객체로 변환 될 것입니다 :
new Function1[Int, Int] {
def apply(x: Int): Int = x * x
}
그것은 스칼라가하는 모든인가?
해결법
-
==============================
1.정의, 그리고 몇 가지 예는, http://scala-lang.org/files/archive/spec/2.11/06-expressions.html#method-values에 제시되어있다.
정의, 그리고 몇 가지 예는, http://scala-lang.org/files/archive/spec/2.11/06-expressions.html#method-values에 제시되어있다.
그렇진 : 그것은 사실입니다
new Function1[Int, Int] { def apply(x: Int): Int = someMethod(x) }
차이는, 예를 들어 문제 경우 것으로 someMethod 어딘가 무시됩니다.
또한이 방법은 여러 매개 변수 목록을 취하면 어떻게되는지 고려해야 할 또는 별 이름 매개 변수 (당신은 함수를 반환하는 함수를 얻을).
ETA 팽창 및 자리 (것으로 someMethod (_))와 익명 함수를 사용하는 등에 의해 입력 추론 implicits, 다르게 행동 할 수 있음을 유의
from https://stackoverflow.com/questions/39445018/what-is-the-eta-expansion-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 어떻게 스파크 SQL DataFrame에서 열 유형을 변경하려면? (0) | 2019.10.31 |
---|---|
[SCALA] 스칼라에서 암시 적 이해 (0) | 2019.10.31 |
[SCALA] csv 파일을 변환하는 방법에 지붕 EET을 (0) | 2019.10.31 |
[SCALA] 스칼라의 게으른 발의 (숨겨진) 비용은 무엇입니까? (0) | 2019.10.31 |
[SCALA] 스칼라에서 전체 파일을 읽기? (0) | 2019.10.31 |