Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby阵列神秘失败?_Ruby_Arrays - Fatal编程技术网

Ruby阵列神秘失败?

Ruby阵列神秘失败?,ruby,arrays,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 R

这失败了

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'

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

感谢sawa和Matt的上述评论。它帮助我认识到问题所在。上面的示例简化为更易于阅读,但它包含一个假设,即数组中的真实数据不会导致问题。当我做你给我的sawa测试时,我发现它有效,所以我发现问题一定是我的数据。然后我看到,尽管我的数据看起来与上面的示例数组相同,但它有BigDecimal格式的数字,这是rinruby拒绝的。当我将这些更改为浮动时,它起了作用。

是否
排列==[44,2]
返回
true
?如果您使用
=
而不是
|=
,您的演示会更有说服力。读者自然会问的问题是“是否将
传播设置为其他内容?”我不会。上面说我再过两天就不能接受了。
require 'rinruby'
r = RinRuby.new(:echo => false)
r.assign "test", [44, 2]