Может кто-то объяснит мне, почему массив срез или сдвиг возвращает разные результаты, чем args -= [args.frist]
рубин сдвиг и срез с проблемой рекурсии
Я хочу вывести [[1, 2, 3], [2, 3], [3], []]
.
def run(args=[1,2,3],results=[])
results << args
return results if args.size < 1
args -= [args.first]
run(args,results)
end
VS.
def run(args=[1,2,3],results=[])
results << args
return results if args.size < 1
args.shift
run(args,results)
end
Это объясняет много. Я потратил слишком много времени, пытаясь понять, почему результат не синхронизирован. – alexzg