История изменений
Исправление Virtuos86, (текущая версия) :
Да я вот тоже не могу понять, зачем ты просишь комптлятор поглотить объект
Я ничего не просил. Это же обычный for in цикл, кому в голову пришло сделать такие правила языка, чтобы он неявно объекты захватывал и уничтожал?
for
ничего не уничтожает; если ты создал объект, и им никто не владеет, то его логично уничтожить. Также компилятор подчищает все созданные объекты, не имеющие биндинга, в конце каждой строки кода. И цикл ничего не захватывает, он работает с итератором, который ты ему подсунешь. Да, есть «подкапотные» правила, позволяющие подсунуть ему объект, а не итератор, и вместо for i in vector.into_iter()
писать просто for i in vector
, или for i in &vector
вместо for i in vector.iter()
, но если это слишком сложно для тебя…
Исходная версия Virtuos86, :
Да я вот тоже не могу понять, зачем ты просишь комптлятор поглотить объект
Я ничего не просил. Это же обычный for in цикл, кому в голову пришло сделать такие правила языка, чтобы он неявно объекты захватывал и уничтожал?
for
ничего не уничтожает; если ты создал объект, и им никто не владеет, то его логично уничтожить. Также компилятор подчищает все созданные объекты, не имеющие биндинга, в конце каждой строки кода. И цикл ничего не захватывает, он работает с итератором, который ты ему подсунешь. Да, есть «подкапотные» правила, позволяющие подсунуть ему объект, а не итератор, и вместо for i in vector.into_iter()
писать просто for i in vector
, или for i in &v
вместо for i in vector.iter()
, но если это слишком сложно для тебя…