[swift-evolution] Guard let

Justin Oroz justinoroz at me.com
Fri Jun 9 23:07:19 CDT 2017


First time trying to contribute, hopefully this is the proper channel to submit.

I propose an addition to the guard let statement to allow for replacement of optionals with unwrapped values.

ex)

two current options


obj.methodWithCallback() {(foo, bar) in
	guard let foo = foo else { 
		return
	}
	
	foo.prop = “new”
}
 
OR

obj.methodWithCallback() {(foo, bar) in
	guard foo != nil else { 
		return
	}
	
	foo!.prop = “new”
}


I propose the following option:

obj.methodWithCallback() {(foo, bar) in
	guard foo else { 
		return
	}
	
	foo.prop = “new”
}

This reduces the seemingly redundant "guard let foo = foo” statement and removes the unnecessary forced optional unwrapping. 

- Justin




More information about the swift-evolution mailing list