stream.js 是一个很小、完全独立的Javascript类库,它为你提供了一个新的Javascript数据结构:streams.
1 |
< script src = 'stream-min.js' ></ script > |
下载 stream.js (2Kb)
streams是什么?
Streams 是一个操作简单的数据结构,很像数组或链接表,但附加了一些非凡的能力。
它们有什么特别之处?
跟数组不一样,streams是一个有魔法的数据结构。它可以装载无穷多的元素。是的,你没听错。他的这种魔力来自于具有延后(lazily)执行的能力。这简单的术语完全能表明它们可以加载无穷多的元素。
入门
如果你愿意花10分钟的时间来阅读这篇文章,你对编程的认识有可能会被完全的改变(除非你有函数式编程的经验!)。请稍有耐心,让我来先介绍一下streams支持的跟数组或链接表很类似的基本功能操作。然后我会像你介绍一些它具有的非常有趣的特性。
Stream 是一种容器。它能容纳元素。你可以使用 Stream.make
来让一个stream加载一些元素。只需要把想要的元素当成参数传进去:
1 |
var s = Stream.make( 10, 20, 30 ); |
2 |
// s is now a stream containing 10, 20, and 30 |
足够简单吧,现在 s 是一个拥有3个元素的stream: 10, 20, and 30; 有顺序的。我们可以使用s.length()
来查看这个stream的长度,用 s.item( i )
通过索引取出里面的某个元素。你还可以通过调用 s.head()
来获得这个stream 的第一个元素。让我们实际操作一下:
1 |
|