scala 에서는 java 와 마찬가지로 collection 을 생성함과 동시에 메모리에 모든 element 를 올릴 수 있는 방법을 제공한다.
아래의 코드는 바로 그 방법
scala> 1 to 10
res1: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
아래의 코드는 lazy 방식의 view 를 생성
scala> (1 to 10).view
res2: scala.collection.SeqView[Int,scala.collection.immutable.IndexedSeq[Int]] = SeqView(...)
그러므로 Collection type 의 view method 를 호출하게 되면 eager 방식(실행과 동시에 메모리에 올리는 방식) 이 아니라 lazy 하게 선언이 가능하다.
이는 나중에 사용될 때 해당 원소들이 메모리에 할당 될 것이다.
scala> (1 to 10).view.foreach(println)
1
2
3
4
5
6
7
8
9
10
아래는 참고한 글 주소
http://alvinalexander.com/scala/how-to-create-lazy-views-collections-scala-cookbook
'Programming > Scala' 카테고리의 다른 글
scala 로 kafka topic, partition 정보 가져오는 방법 (0) | 2017.09.01 |
---|---|
Reactive Manifesto (0) | 2016.06.01 |
Merging sequence of Futures of Lists into one Future containing merged list (0) | 2016.03.09 |
scala 공부 자료 (0) | 2015.12.02 |
Scala 병렬 계산을 위한 Blitz library (0) | 2015.11.20 |