将数组元素返回到参数中的可变长度数组

时间:2014-07-03 21:32:22

标签: ruby arrays recursion

我有一个带有以下函数头def get_value( default, *args )的ruby函数,我在我的函数体中使用递归,我想传递没有第一个元素的args数组,我使用的是get_value(default, args.slice(1, args.length))但是,在使用调试器后,我发现递归函数中的args是一个数组数组,内部数组包含我的元素。因此,如果我的主数组是[:files, :mode],则递归数组将为[[:mode]]。我怎样才能成为[:mode]

1 个答案:

答案 0 :(得分:3)

使用splat运算符调用get_value

get_value(default, *args.slice(1, args.length))

或其他简洁

get_value(default, *args[1..-1])