scala学习笔记:理解stream和view

来源:互联网 发布:nba2k17乔丹动作数据 编辑:程序博客网 时间:2024/05/02 01:48

先来个正常的:

scala> (0 to 5).map((x:Int)=>{println(x);x*2}).foreach(println)0123450246810

再来个stream版的:

scala> (0 to 5).toStream.map((x:Int)=>{println(x);x*2}).foreach(println)0012243648510

最后来个view版的:

scala> (0 to 5).view.map((x:Int)=>{println(x);x*2}).foreach(println)0012243648510

目前看,view和stream的表现一样,那么区别何在呢?观察下一个:

scala> (0 to 5).toStream.map((x:Int)=>{println(x);x*2})0res5: scala.collection.immutable.Stream[Int] = Stream(0, ?)scala> (0 to 5).view.map((x:Int)=>{println(x);x*2})res6: scala.collection.SeqView[Int,Seq[_]] = SeqViewM(...)

看来stream会优先求第一个值的!这就是区别的全部么?

0 0
原创粉丝点击