루비 튜토리얼이 있습니다람다가 초기 값을 재설정하지 않는 이유는 무엇입니까? sitepoint에
def increase_by(i)
start = 0
lambda { start += i }
end
increase = increase_by(3)
increase.call # => 3
increase.call # => 6
왜이 방법을 두 번째로 호출 할 때하지 start
리셋 0
에합니까? 함수의 시작 부분에 start = 0
이 있다고 가정하고 두 함수를 모두 호출하면 3
을 반환하지 않아야합니까?
'start = 0'은 람다 블록 안에 없습니다. 람다가 호출 될 때가 아니라'increase_by (3)'를 호출 할 때 한 번만 호출됩니다. – falsetru
.call을 사용하여 전체 함수를 호출하지 않습니까? 그리고 람다 만있는 것이 아닙니다. – rackymortor
번호'call'은'increase_by'가 아니라'increase'를 호출합니다. – sawa