LINUX.ORG.RU

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

Исправление javascript, (текущая версия) :

в этом примере вижу затенение в

Это не затенение, а замыкание. Каждый вызов функции увеличивает значение x на единицу и возвращает его.

и переопределение в

А это не переопределение,а затенение. Потому что идентификатор используется тот же самый. По вашему куда y() сохраняет результаты между вызовами?

при это оно бесполезное, поскольку далее в коде не используется

А в println что выводится?

Ну вот вам еще раз, если вам не очевидно.


let mut x = 0;
let mut y = || { x += 1; x };
let x = "shadow";
let a = y();
let b = y();
let c = y();
println!("a:{} b:{} c:{} x:{}", a, b, c, x); // a:1 b:2 c:3 x:shadow

Исправление javascript, :

в этом примере вижу затенение в

Это не затенение, а замыкание. Каждый вызов функции увеличивает значение x на единицу и возвращает его.

и переопределение в

А это не переопределение,а затенение. Потому что идентификатор используется тот же самый. По вашему куда y() сохраняет результаты между вызовами?

при это оно бесполезное, поскольку далее в коде не используется

А в println что выводится?

Ну вот вам еще раз, если вам не очевидно.


let mut x = 0;
let mut y = || { x = x + 1; x };
let x = "shadow";
let a = y();
let b = y();
let c = y();
println!("a:{} b:{} c:{} x:{}", a, b, c, x); // a:1 b:2 c:3 x:shadow

Исправление javascript, :

в этом примере вижу затенение в

Это не затенение, а замыкание. Каждый вызов функции увеличивает значение x на единицу и возвращает его.

и переопределение в

А это не переопределение,а затенение. Потому что идентификатор используется тот же самый. По вашему куда y() сохраняет результаты между вызовами?

при это оно бесполезное, поскольку далее в коде не используется

А в println что выводится?

Исходная версия javascript, :

в этом примере вижу затенение в

Это не затенение, а замыкание. Каждый вызов функции увеличивает значение x на единицу и возвращает его.

и переопределение в

А это не переопределение,а затенение. Потому что идентификатор используется тот же самый. По вашему куда y() сохраняет результаты между вызовами?