LINUX.ORG.RU

[newbie]Ruby и замыкание

 


0

0

Почитал в википедии, что такое замыкание. Почитал там же, что ruby его
поддреживает. Пишу код:

def mainfunc
    a=2
    def subfunc
        b=3
        a*b
    end
    subfunc
end
puts a

В ответ получаю вместо ожидаемого "6" ошибку интерпретатора, мол он не
видит переменную "а". То ли я не понял, что есть замыкание, то ли я не
правильно его реализую, поясните нубу.
anonymous

a - это локальная переменная функции mainfunc, а твой puts находится вне этой функции, поэтому и не видит ее переменных.

P.S. учи Питон, в жизни пригодится.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Самое главное - где тут замыкание???

svu ★★★★★
()
Ответ на: комментарий от tailgunner

> P.S. учи Питон, в жизни пригодится.

Драгдиллер?

stassats ★★★★
()

def mainfunc
    a=2
    subfunc = lambda do
        b=3
        a*b
    end
    subfunc
end

puts mainfunc.call

CrazyPit ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.