Forcing unwrapping of optionals is bad practice, but safely unwrapping can be 
tedious. I’m hoping for something in between that would that would provide soft 
unwrapping using a syntax like: myVar?!

For example, currently we have to do this:

let temp = (myString ?? “”); print(“\(temp)”)
if (myString ?? “”).isEmpty {…}
if myBool ?? false {…}
if (myInt ?? 0) > otherInt {…}

To something like this instead:

print(“\(temp?!)”)
if myString?!.isEmpty {…}
if myBool?! {…}
if myInt?! > otherInt {…}

What this is implying is that it will attempt to unwrap or use the default of 
the type.

Of course, this will only work with primitive types and leverage their implicit 
default values which would go a long way with tedious code and more safety 
(less forced unwrapping in the world). Otherwise it will produce a compile 
error if doing something like: myCustomType?!. What do you think?

Basem
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to