Alternatively, if you want an indistinguishable text representation you can use ?? "".
Yes, in fact I use so many `?? ""`s. As you know, you can use `?? ""` inside string interpolations since Swift 2.1, how nice!
And seeing the places where I put `?? ""`, most of them are suggested by Swift at compile-time. (Or I should say edit-time.)
It seems a lot more helpful to people still learning about Optionals to make the distinction clear
I really want to hear which should be better for starting learners, which hides some mistakenly used Optionals or embedding a character sequence of "Optional". In my opinion, we should recommend using debugDescription, which may easily help us finding invisible characters contained in the string.
Why I used "very bad" in the former post, is because we first know that we mistakenly put Optionals inside String.init or string interpolations at runtime.
As noted, Swift warns us many things about Optionals, like "should be unwrapped" at compile-time, but once enclosed in String.init or string interpolations, Swift silently accept it and generates unexpected result.
So, another choice is showing warnings when Optionals are put inside String.init or string interpolation, to avoid such warnings, we can use debugDescription or String(reflecting:) .