+1, personally I have taken to using `x+"str"+y` instead of
`"\(x)str\(y)"`, if x/y are strings, so I can get a compile-time error if I
do this accidentally.
But I do see the appeal of being able to print("the data: \(data)") for
simple use cases. Didn't someone earlier propose some modifiers/labels like
"\(describing: x)" ?
On Wed, May 18, 2016 at 11:50 AM, Krystof Vasa via swift-evolution <
[email protected]> wrote:
> 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
>
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution