[swift-evolution] New feature request: syntactic sugar for "if let" scoped self assignment

Nicholas Exner nickandcecily at gmail.com
Sun Aug 28 14:54:36 CDT 2016

Dear Swift Evolution Group Members,
         Recently, as I was reviewing some code that I wrote, I was wondering what the community’s thoughts are on the possible value of having a special “if let” self-assignment operator added to the language (such as =? ).  A sort of syntactic sugar that allows for optional unwrapping into a scoped variable of the same name as the variable in the larger scope.  Here is some before and after code of what I am contemplating:

var str:String?
str = "Hello"

if let str = str {

var str:String?
str = “Hello”   // Output is Hello, not Optional(“Hello”)

if let str =? {
    print(str) // Output is also Hello, not Optional(“Hello”)

The value that I perceive of adding this to the language would be to allow a short-hand way to unwrap in a “if let" conditional and allowing developers to reduce duplication when a unique variable name is not needed.  By the way, I’m a big fan of ternary operators which the community already sees of value.

Let me know your thoughts.  Is this something that could be put into a proposal?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160828/87497927/attachment.html>

More information about the swift-evolution mailing list