弱参考文献。基本上,我需要一系列数字,其中一些数字可以在不再需要时被分配。是否有像流这样的数据结构,但是很弱?
回答
scalaz.EphemeralStream是你想要的。
你可以做的一件事是创建一个Iterable
而不是一个Stream
。您的Iterable
需要提供iterator
方法,该方法返回包含hasNext
和next
方法的迭代器。
当环比Iterable
,hasNext
和next
将被调用来生成的元素在需要的时候,但他们不存储(如Stream
一样)。
简单的例子:
class Numbers extends Iterable[Int] {
def iterator = new Iterator[Int] {
private var num = -1
def hasNext = num < 99
def next = { num += 1; num }
}
}
这没有什么帮助,因为我需要一个流,有两个原因:函数式编程(=不是迭代器)和记忆(不是迭代器)。 – Anonymous 2011-03-28 22:50:59
@匿名 - 请注意''Iterable'拥有大多数Scala收集方法(包括'foreach','map','filter','foldLeft'等),因此您可以像使用其他集合一样使用它进行func编程,我以为你想要的东西*不*保留生成的值? – Jesper 2011-03-29 11:03:37
它应该保留它们,但不是永久的。看看(我认为)java.lang.ref.WeakReference。 – Anonymous 2011-03-29 12:29:11
- 1. 这是什么样的数据结构?
- 2. 是否有像@@ ServerName这样的变量,但是对于数据库名称?
- 3. 这样的数据结构是否存在?
- 4. 是否有这样一个结合队列和散列表的数据结构?
- 5. 是否有像asctime_s()这样的函数可用于Windows中的SYSTEMTIME结构?
- 6. 在PHP中,是否有像stristr这样的函数,但是对于数组?
- 7. 是否有像这样的jQuery工具?
- 8. 是否有像.dll或.so这样的东西,但跨平台?
- 9. 是否有像“Codea”这样的应用程序,但对于MonoTouch?
- 10. 是否有可能这样的结构声明在C
- 11. java是否有“LinkedConcurrentHashMap”数据结构?
- 12. PHP是否有Set数据结构?
- 13. 这是否类似队列数据结构有名字吗?
- 14. 这是否是我的Node结构的正确析构函数?
- 15. 是否有像Twitter流API一样的Instagram流式API?
- 16. 在Delphi中是否有像PHP的vardump这样的函数?
- 17. 是否有像getClassInfo这样的包含样式的方法?
- 18. 有点像拼接的,但不是很
- 19. Infinispan是否支持像Redis这样的结构化值的本地操作?
- 20. Xcode中是否有像sleepWithTimeInterval()这样的函数?
- 21. 对于Hbase,在MySQL中是否有像EXPLAIN这样的函数?
- 22. 是否有像mysql_real_escape_string这样的VB6函数?
- 23. 是否有像PeekMessage这样的函数不处理消息?
- 24. 在jQuery中是否有像array_unique()这样的函数?
- 25. 是否有像_compile_select或get_compiled_select()这样的函数?
- 26. 是否有像StartWith这样的扩展名,但是对于可观察序列的结尾?
- 27. 这是强还是弱?
- 28. Ruby AWS :: S3 :: S3Object(aws-sdk):是否有像aws-s3一样的数据流方法?
- 29. JavaScript:$不是一个函数(但它好像是这样)
- 30. 是否有可能在Java8流中重写这样的代码?
你应该庆幸你没有弱流(对不起,忍不住) – 2011-03-27 18:45:59
http://stackoverflow.com/questions/4132924/functional-processing- of-scala-streams-without-outofmemory-errors – 2011-03-27 20:09:54
@Sciss对不起,当我搜索时找不到任何东西......呃,有时候会发生,对吗? – Anonymous 2011-03-27 21:31:45