LINUX.ORG.RU

История изменений

Исправление 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; <- переопределение

если вам это неочевидно, непонятно - живите с этим, если так удобнее думать. просто будете попадать в ситуации, когда вас понимать не будут ибо подменяете терминологию.