переменных?
Я слабо понял момент ее жизни в другом scope, на примере того же int i в for, мне стоит его в каждом последующем использовании обнулять или обнуляние уже не используемой переммной происходит автоматом?
Как вообще переменные живут в памяти?
Интересный вопрос
Самое простое: на run.dlang.io есть вкладка AST, в которой можно глянуть на циклы. Каждый разворачивается по своему, например, из for может быть вынесена переменная, однако весь блок будет обрамлён дополнительными скобками {} за пределами которых переменная уже видна не будет. Для foreach уже переменная внутри на каждой итерации, у rangeй, например, внутри цикла будет вызов .front и т.п. Это в самом простом случае. Однако любой системный ЯП и D в т.ч. имеет огромное количество рычагов управления местом хранения переменных и их жизненным циклом. Например, есть нюанс с массивом делегатов, при передаче в который индекс замыкается только на одно значение переменной и у всех делегатов будет одно и тоже. Т.е. сильная зависимость от того, чего там в цикле обходится и как, можно же по значению элемент в цикле заказывать, как и по ссылке.
Обсуждают сегодня