[SCALA] 스칼라에서 "보기"기능은 무엇입니까?
SCALA스칼라에서 "보기"기능은 무엇입니까?
특히 여기 문제 1에서 찾고 있어요
http://pavelfatin.com/scala-for-project-euler/
다음과 같이 나열된 코드는
val r = (1 until 1000).view.filter(n => n % 3 == 0 || n % 5 == 0).sum
나는 "보기"를 제외한 모든 것을 따를 수 있습니다. 사실 나는 그래도 코드가 컴파일 정확히 같은 대답을 생산 전망을 가지고가는 경우에.
해결법
-
==============================
1.보기, 게으른 수집을 생산하고, 예를 들어 해당 통화 있도록 필터는 컬렉션의 모든 요소를 평가하지 않습니다. 명시 적으로 액세스되면 요소 만 평가됩니다. 이제 합 액세스 모든 요소를 않지만, 볼 수있는 필터에 대한 호출이 전체 벡터를 생성하지 않습니다. (스티브에 의해 코멘트 참조)
보기, 게으른 수집을 생산하고, 예를 들어 해당 통화 있도록 필터는 컬렉션의 모든 요소를 평가하지 않습니다. 명시 적으로 액세스되면 요소 만 평가됩니다. 이제 합 액세스 모든 요소를 않지만, 볼 수있는 필터에 대한 호출이 전체 벡터를 생성하지 않습니다. (스티브에 의해 코멘트 참조)
뷰의 사용의 좋은 예는 다음과 같습니다
scala> (1 to 1000000000).filter(_ % 2 == 0).take(10).toList java.lang.OutOfMemoryError: GC overhead limit exceeded
다음은 스칼라는 처음 액세스 (10) 그러나 전망에 1,000,000,000 요소 컬렉션을 만들려고 :
scala> (1 to 1000000000).view.filter(_ % 2 == 0).take(10).toList res2: List[Int] = List(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
-
==============================
2.나는 스칼라에 대해 잘 알고 있지만, 아마도이 페이지 세력의 도움이되지 않습니다 ...
나는 스칼라에 대해 잘 알고 있지만, 아마도이 페이지 세력의 도움이되지 않습니다 ...
그래도 코드가 이론에서보기없이 작동하지만 힘 엄격한보다는 게으른 방식으로 컬렉션의 모든 요소를 구성하는 몇 가지 추가 작업을하고있을 것입니다 것처럼 소리가 그래서.
from https://stackoverflow.com/questions/6799648/in-scala-what-does-view-do by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 어떻게 튜플에 함수를 적용? (0) | 2019.11.11 |
---|---|
[SCALA] 어떻게 반복 가능 객체의 스칼라의 목록에서 DataFrame를 만드는 방법? (0) | 2019.11.11 |
[SCALA] SBT 정지 종료하지 않고 실행 (0) | 2019.11.11 |
[SCALA] 스칼라에서 memoize하는 일반적인 방법이 있나요? (0) | 2019.11.11 |
[SCALA] 어떻게를 java.util.List에 scala.List를 변환하는? (0) | 2019.11.11 |