Ruby Stream API

2020-05-06 06:33:01

流是元素集合的包装器,提供许多有用的操作来修改和/或获取有关集合的信息。这些操作是可链接的,可以分类如下:

中间操作(跳过、过滤、映射等)--这些操作正在改变流,但仍使其处于打开状态,以供进一步修改。

终端操作(计数、收集等)--在完成所有修改后执行并返回有限结果的操作。

array=[1,2,3,4,5,6,7,8,9,10]stream=Stream::FromArray。收集的新(数组)=流.filter{|num|num%2==0}.跳过(2).Collect放置收集的数量#[6,8,10]。

Generate方法接受一个限制(最大元素数)和一个&;Seed Block函数,该函数在每次Seed.call时返回一个新元素。限制是必需的,因为如果没有限制,此流将是无限的。如果未指定限制,则默认值为100个元素。

例如,当您必须使用来自某些IO对象的传入对象流时,此机制非常有用。

这不是密信!Stream是包装您的集合的适当对象。此外,这个gem中的每个对象都是不可变的,因此是线程安全的->;中间操作不会改变调用它们的实例;相反,它们使用底层集合的修改版本创建Stream的新实例。

如果您想贡献,只需打开一个问题(bug、功能请求、任何改进想法)或公关即可。