Hello,
From *The Swift Programming Language*, I learn the defer statements
execute in the reverse order that they appear in the program. And when
there are two or more defer statements in a loop(e.g. a for loop), defer
statements execute still in the reverse order that they appear, but in the
loop order that the loop statement executes. Code snippet is here( https://swiftlang.ng.bluemix.net/#/repl/582421bfdee52b5745935771\).
Early I saw this thread( https://twitter.com/lexrus/status/796370747849441280\) from Twitter, I am
curious about defer statement's execute order. Can you tell more details
about it?
On 10 Nov 2016, at 08:32, Andrea VEH via swift-users <swift-users@swift.org> wrote:
Hello,
From The Swift Programming Language, I learn the defer statements execute in the reverse order that they appear in the program. And when there are two or more defer statements in a loop(e.g. a for loop), defer statements execute still in the reverse order that they appear, but in the loop order that the loop statement executes. Code snippet is here(https://swiftlang.ng.bluemix.net/#/repl/582421bfdee52b5745935771\).
Early I saw this thread(https://twitter.com/lexrus/status/796370747849441280\) from Twitter, I am curious about defer statement's execute order. Can you tell more details about it?
Right, more specifically, it is the “static” scope that it is defined in. Go has a similar but different defer statement, which runs defer'd actions at the end of the current dynamic *function* scope. The Swift rules are simpler, more predictable, and are able to be implemented more efficiently.
-Chris
···
On Nov 9, 2016, at 11:45 PM, Rien <Rien@balancingrock.nl> wrote: