I've recently started writing code (for an OS X app) in Swift, and I find the guard statement truly fantastic. Many of my methods do very little except test for preconditions, and the "guard" statement makes this very clear. For example, my action methods all look like this:
@IBAction func doSomething( sender: AnyObject ) {
guard ... else { NSBeep(); return }
guard ... else { NSBeep(); return }
guard ... else { NSBeep(); return }
mutateState()
}
There's now a clear separation between the part that just checks preconditions, and the part that does something. It's really nice for defensive programming, and makes it easy to write programs that do not crash.