Size: a a a

2022 January 29

IM

Igor Milk in SwiftBook
Или

1) это свойство стане ссылочным типом
2) просто будет существовать захваченное значение ( переменной )
источник

b

bodich in SwiftBook
Тут ничего захвачено не было, Int это не ссылочный тип, он скопируется
источник

IM

Igor Milk in SwiftBook
смотри функция инкремент захватывает значение рунинг тотал. Затем когда я вызваю функцию мэйк возвращается функция и если я ее вызову то она добавит сущ значение.
источник

IM

Igor Milk in SwiftBook
источник

IM

Igor Milk in SwiftBook
Вот
источник

IM

Igor Milk in SwiftBook
источник

IM

Igor Milk in SwiftBook
Захват значений глава
источник

b

bodich in SwiftBook
runningTotal не захватывается. incrementer просто обращается к ней т.к. они в одном скоупе
источник

IM

Igor Milk in SwiftBook
Вот пример функции makeIncrementer, которая содержит вложенную функцию incrementer. Вложенная функция incrementer() захватывает два значения runningTotal и amount из окружающего контекста. После захвата этих значений incrementerвозвращается функцией makeIncrementer как замыкание, которое увеличивает runningTotal на amount каждый раз как вызывается.
источник

IM

Igor Milk in SwiftBook
Из контекста;
источник

b

bodich in SwiftBook
Это не тот же механизм, что захват ссылки на объект, например мы обсуждали self. Попробуй передать этот runningTotal куда-то из функции incrementer и изменить там. Он просто будет скопирован. Т.к. это value type
источник

IM

Igor Milk in SwiftBook
пробую
источник

b

bodich in SwiftBook
Не знаю как правильно описать, но функция и та переменная находятся в одном скоупе, и поэтому функция имеет доступ к runningTotal. Если ты попробуешь вот так захватить в escaping closure эту runningTotal, то она уже не будет меняться в том скоупе, переменная скопируется
источник

b

bodich in SwiftBook
Это примерно как в таком коде

var number = 20
var value = 5
number += value

В третьей строке number был захвачен
источник

IM

Igor Milk in SwiftBook
никак не проверить) Ладно буду просто думать что замыкание создало ссылку на переменную
источник

IM

Igor Milk in SwiftBook
как описано в дкументации
источник

IM

Igor Milk in SwiftBook
или можно проверить создать 2 контролера
источник

IM

Igor Milk in SwiftBook
написать метод захваченный замыканием
источник

IM

Igor Milk in SwiftBook
и посмотреть
источник

IM

Igor Milk in SwiftBook
как это повлтяет на знаения одного и второго конотролера
источник