We could make Optional conform to CustomStringConvertible: var description: String { switch self { case .some(let x): return "\(x)" case .none: return "\(Wrapped.self)?.none" } }
- Dave Sweeris > On May 18, 2016, at 15:56, Michael Peternell via swift-evolution > <swift-evolution@swift.org> wrote: > > Well, I wouldn't deprecate them. > > Maybe it should print something different: the value itself if it is not nil, > and "nil" otherwise? > > Or there may be an optional warning for this case. > > Or maybe both. But not just deprecate the feature altogether. It will make > people use the "!" instead in unsafe places (like "\(someOptional!)") - it's > better not to crash and print something strange instead. Especially when in > production. > > -Michael > >> Am 18.05.2016 um 20:50 schrieb Krystof Vasa via swift-evolution >> <swift-evolution@swift.org>: >> >> 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 >> swift-evolution@swift.org >> https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution