• Задача
  • Решение
  • Обсуждение

Capture: аргумент против замыкания

Аргументы отложенного вызова вычисляются в момент объявления, а замыкание видит переменную живой. Реализуйте capture: верните (fixed, live), где fixed захвачен аргументом defer (старое значение), а live — замыканием (живое значение).

GolangРешение
func capture() (fixed, live int) {
	v := 1
	defer func(x int) { fixed = x }(v)
	v = 2
	defer func() { live = v }()
	return
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

00:00:00
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки