[swift-evolution] Better syntax for deferred?

Maury Markowitz maury.markowitz at gmail.com
Sat Jan 2 10:49:01 CST 2016


> On Jan 2, 2016, at 9:38 AM, Nicky Gerritsen <nickygerritsen at me.com> wrote:
> 
> Defer is used to make code *always* run, even if the function terminates early. Imagine:

Which is precisely why I called it 'always'. So in your example:

    func doSomethingWith(x: Int) {
	print(“1”)
	defer { print(“2") }
	if x > 3 { defer { print(“yay”); return }
	print(“3”)
    }

I would say:

    func doSomethingWith(x: Int) {
	print(“1”)
	print(“3”)
        always {
            print(“2")
            if x > 3 { print(“yay”) }
        }
    }

This is functionally identical, but both the syntax and program flow are greatly improved.



More information about the swift-evolution mailing list