Почему этот код удаляет только четные элементы в массиве? Я ожидаю, что цикл for будет перебирать каждое значение от 0 до 3 и удалять каждый элемент по одному. Но это только удаление [0] и a [2]. Что я делаю неправильно? Заранее спасибо -
a=%w(ant bat cat dog)
puts a.inspect #output: ["ant", "bat", "cat", "dog"]
for k in (0..3)
a.delete_at(k)
end
puts a.inspect #output: ["bat", "dog"]
UPDATE -
Спасибо за ваши ответы; Я вижу, что я делал сейчас. Чтобы удалить каждый элемент массива, подойдет метод Array 'shift'. Например:
for each in (0..3)
a.shift
print a
end
Это сместит первый элемент из массива и переместит каждый последующий элемент на одну ячейку вперед. Спасибо за рекомендацию использовать «каждый» - я вижу, что это предпочтительный синтаксис.
ОБНОВЛЕНИЕ 2 -
Будет ли следующий раздел кода более представительным для правильного синтаксиса рубина?
(0..3).to_a.each do
a.shift
p a
end
И спасибо Гленну за предложения по удалению содержимого массива.