История изменений
Исправление ergo, (текущая версия) :
Это не затенение, а замыкание.
мы не обсуждаем вашу конструкцию с замыканием. речь идет о переменной х внутри вашего замыкания. объявление которой и есть «затенение».
А это не переопределение,а затенение. Потому что идентификатор используется тот же самый. По вашему куда y() сохраняет результаты между вызовами?
я даже не буду вам рекомендовать что-то читать на эту тему. вам бы сперва с кашей в терминологии разобраться ибо налицо какое-то самобытное понимание вещей.
еще раз…
let x = 5; <- определение х
{
let x = x * 2;<- затенение х
}
let x = x + 1; <- переопределение
если вам это неочевидно, непонятно - живите с этим, если так удобнее думать. просто будете попадать в ситуации, когда вас понимать не будут ибо подменяете терминологию.
Исправление ergo, :
Это не затенение, а замыкание.
мы не обсуждаем вашу конструкцию с замыканием. речь идет о переменной х внутри вашего замыкания. объявление которой и есть «затенение».
А это не переопределение,а затенение. Потому что идентификатор используется тот же самый. По вашему куда y() сохраняет результаты между вызовами?
я даже не буду вам рекомендовать что-то читать на эту тему. вам бы сперва с кашей в терминологии разобраться ибо налицо какое-то самобытное понимание вещей.
еще раз…
let mut x = 0; <- определение х
let mut y = || { let x = x + 1; x }; <- затенение х
let x = 0; <- переопределение
если вам это неочевидно, непонятно - живите с этим, если так удобнее думать. просто будете попадать в ситуации, когда вас понимать не будут ибо подменяете терминологию.
Исходная версия ergo, :
Это не затенение, а замыкание.
мы не обсуждаем вашу конструкцию с замыканием. речь идет о переменной х внутри вашего замыкания. объявление которой и есть «затенение».
А это не переопределение,а затенение. Потому что идентификатор используется тот же самый. По вашему куда y() сохраняет результаты между вызовами?
я даже не буду вам рекомендовать что-то читать на эту тему. вам бы сперва с кашей в терминологии разобраться ибо налицо какое-то самобытное понимание вещей.
еще раз…
let mut x = 0; <- определение х
let mut y = || { x = x + 1; x }; <- затенение х
let x = 0; <- переопределение
если вам это неочевидно, непонятно - живите с этим, если так удобнее думать. просто будете попадать в ситуации, когда вас понимать не будут ибо подменяете терминологию.