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