ruby中ObjectSpace.each_object得到的对象数组无法相减

[code="ruby"]

s=[]
=> []
ObjectSpace.each_object.each{|x|s< => 27998
e=[]
=> []
ObjectSpace.each_object.each{|x|e< => 3813327

e - s
NoMethodError: undefined method %' for #<Hash:0x1012ce758>
from (irb):25:in
-'
from (irb):25
from :0

[/code]

s和e不是两个数组么?为什么不能相减啊?

版本问题~~没其他的解决办法~

=>puts s 崩溃了。输出很多字符,由此可见,不能相减的。

这是我运行上面代码的输出。
[quote]NotImplementedError: method `hash' called on terminated object (0x82df78
4) [/quote]

在官网的ruby的bug list中,
“called on terminated object”是Bug #1638 [ruby-dev:38628]
bug地址:http://redmine.ruby-lang.org/issues/show/1638

至于两种错误,问题在Hash上面。

不能对ruby失去信心,iteye.com就是ruby成功应用的案例,ruby正在强大过程中。这个bug修正等到下一版本出来,现在是1.9版本。

PS:以后在使用ruby时注意这个问题。

装低版本的ruby ,版本号为:1.8.7
已经通过了测试。
PS:输出很多的数据,屏幕被数据刷的...

看看这个,数据的实现,整数做数组的key,value是数组存的值(或对象)。也是一种很简单的hash原理实现。
看看这个
http://book.csdn.net/bookfiles/271/10027111966.shtml