The string interpolation is one of the strong sides of Swift, but also one of 
its weaknesses. 

It has happened to me more than once that I've used the interpolation with an 
optional by mistake and the result is then far from the expected result. 

This happened mostly before Swift 2.0's guard expression, but has happened 
since as well.

The user will seldomly want to really get the output "Optional(something)", but 
is almost always expecting just "something". I believe this should be addressed 
by a warning to force the user to check the expression to prevent unwanted 
results. If you indeed want the output of an optional, it's almost always 
better to use the ?? operator and supply a null value placeholder, e.g. 
"\(myOptional ?? "<<none>>")", or use myOptional.debugDescription - which is a 
valid expression that will always return a non-optional value to force the 
current behavior.

Krystof

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to