Ruby数组神秘失败?

时间:2014-03-20 23:54:03

标签: ruby arrays

这失败

require 'rinruby'
r = RinRuby.new(:echo => false)
spreads = []
spreads << 44
spreads << 2
r.assign "test", spreads

/var/lib/gems/2.1.0/gems/rinruby-2.0.3/lib/rinruby.rb:656:in `rescue in assign_engine': Unsupported data type on Ruby's end (RuntimeError)
    from /var/lib/gems/2.1.0/gems/rinruby-2.0.3/lib/rinruby.rb:635:in `assign_engine'
    from /var/lib/gems/2.1.0/gems/rinruby-2.0.3/lib/rinruby.rb:405:in `assign'

这有效

require 'rinruby'
r = RinRuby.new(:echo => false)
r.assign "test", [44, 2]

发生什么事了?如果我打印出spread.class和[44,2] .class,它们都会给出一个数组。

1 个答案:

答案 0 :(得分:2)

感谢sawa和Matt的上述评论。它帮助我意识到问题所在。上面的例子被简化为更容易阅读,但它包含了我的数组中的真实数据没有引起问题的假设。当我做了测试你给了我sawa,我发现它有效,所以我看到问题必须是我的数据。然后我看到即使我的数据看起来与上面的示例数组相同,它也有BigDecimal格式的数字,rinruby拒绝了。当我把它们改成浮子时,它起作用了。