Техническое собеседование
-
Что будет выведено в консоль и в каком порядке при выполнении следующего кода?
print(1) DispatchQueue.main.sync { print(Thread.isMainThread) print(2) DispatchQueue.global().async { print(Thread.isMainThread) print(3) } print(4) } print(5) -
Объясните, почему при вызове
a()три раза будет получен следующий вывод:func incrementValue(_ initialValue: Int, step: Int) -> () -> Int { var increment = initialValue return { defer { increment += step } return increment } } let a = incrementValue(0, step: 10) a() // 0 a() // 10 a() // 20