2011-12-15 58 views
0

当我打电话给next()我有一个无关[]@current。我怎样才能解决这个问题?如何修复生成数组中的括号数量错误?

class Result  
    attr_accessor :current 

    def initialize(*previous) 
    @current = previous 
    p @current 
    end 

    def next() 
    res = Result.new(@current) 
    end 
end 

res = Result.new([2,2], [3,3], [4,4]) 
nextArray = res.next 

回答

1

您的第一个电话有3个参数,而next()中的电话只有一个。

尝试:

def next() 
    res = Result.new(*@current) 
end 
+0

谢谢,它的工作原理! :) – 2011-12-15 20:51:28

1

你需要做Result.new(*@current)previous前一个星号,所以数组被“splatted”回参数列表,让你打电话Result.new有三个参数,而不是包含三个一个数组阵列。

1

这是因为*previous是一个数组。所以如果你打电话给Result.new @current它会被包裹在下一个数组中,依此类推。