netch80: (Default)
[personal profile] netch80

Кто с ходу увидит ошибку?

    for i in range(0,3):                                                    
        test.acct_servers[i].handleAcctRequest = \                          
                lambda p: handleAcctRequest(test, test.acct_servers[i], p)  

Получившие данную шишку на лбу понимают, почему для порождения замыкания надо рисовать отдельную функцию.

UPD[2012-07-05]: от gegmopo4:
... lambda p, i=i: (далее по тексту)
Работает, но я не берусь отправлять такое в общее репо.

Date: 2012-07-04 01:13 pm (UTC)
From: [identity profile] p1r4nh4.livejournal.com
Да, кстати, в новом джаваскрипте (harmony) ввели блочный скоупинг (let вместо var), и там при таких раскладах всë будет хорошо:

let lambas = [];
for (let i = 0; i < 10; i++) {
lambdas.push(function() { console.log(i); });
}

Это будет работать как хочется.

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 05:40 pm
Powered by Dreamwidth Studios