What is closure in Swift language?

Introduction In this article, I’m going to briefly explain what closure is. Closures is self-conitained blocks of funcionality that can be passed around and used in your code. — Apple Expression: { (params) -> return value in statements } @escaping When closure is marked as escaping, it will outlive or leave the scope you passed. func response(_ completionHandler: @escaping(Result) -> Void) { completionHandler(.success) } @nonescaping By default, closures are nonescaping, meaning closure will no longer exist in memory after complete execution in the scope you have passed it to. ...

December 10, 2023 · 1 min · Dmytro Chumakov

What is “reference type” in Swift?

Introduction In Swift, classes, closures, and actors all reference types. ‘Reference type’ is instance that shares a single copy of data. Assigning a reference type to a constant or variable, or passing it into a function or method, it is always a reference to a shared instance that is assigned or passed in. Example You can pass your property value by sharing the same address in memory. // Reference type example class Storage { var data = “data-example” } var storage = Storage() print("\(storage.data)") // prints "data-example" print("storage address:", Unmanaged.passUnretained(storage).toOpaque()) var copiedStorage = storage copiedStorage.data = “new-data” print("\(storage.data), \(copiedStorage.data)") // prints "new-data, new-data" print("copiedStorage address:", Unmanaged.passUnretained(copiedStorage).toOpaque()) ...

December 3, 2023 · 1 min · Dmytro Chumakov