Junior — Middle
Objasnite šta je lista hvatanja u programskom jeziku
sobes.tech АИ
Одговор од АИ
Список захвата (capture list) в языке Swift используется в замыканиях (closures) для определения того, как переменные из внешнего контекста будут захвачены и использоваться внутри замыкания.
По умолчанию замыкания захватывают переменные по ссылке, что может привести к циклам удержания (retain cycles), особенно при работе с классами. С помощью списка захвата можно явно указать, как именно захватывать переменные — например, по значению (weak, unowned) или с копированием.
Пример:
class ViewController {
var name = "Main"
func setup() {
let closure = { [weak self] in
print(self?.name ?? "No name")
}
closure()
}
}
Здесь [weak self] предотвращает сильный цикл удержания между замыканием и объектом класса.