Подробное объяснение захвата переменных в замыканиях

Я видел бесчисленное количество сообщений о том, как при захвате переменных используются переменные для создания замыкания, однако все они, похоже, не содержат конкретных деталей и называют все это «магией компилятора».

I Я ищу четкое объяснение:

  1. Как локальные переменные на самом деле захватываются.
  2. Разница (если есть) между захватывающими типами значений и ссылочными типами.
  3. И есть ли какие-либо упаковки по отношению к типам значений.

Я бы предпочел ответ в терминах значений и указателей (ближе к сути того, что происходит внутри), хотя я также приму четкий ответ, включающий значения и ссылки.

57
задан DuckMaestro 25 March 2011 в 22:02
поделиться