Sorry, my previous example didn't use the string interpolation, it should be

print("http://apple.com\(myURL.path)").

> On May 20, 2016, at 7:04 AM, Dan Appel <[email protected]> wrote:
> 
> Thats a fair solution. I still disagree, but not as strongly.
> 
> On Thu, May 19, 2016 at 10:01 PM Krystof Vasa <[email protected] 
> <mailto:[email protected]>> wrote:
> With this proposal in place:
> 
> 1) The user would type print(myURL.path).
> 2) The compiler will immediately issue a warning about printing an optional - 
> the user would hence learn about optionals *before* the code is run.
> 3) If he ran the code anyway, he'd still get Optional(/iphone/) anyway.
> 4) Xcode would offer a Fix-It, adding .debugDescription to the optional, 
> getting Optional(/iphone/) on the anyway, yet again.
> 
> I'm not saying *removing* the current behavior, but adding a warning for this 
> - you'd get the same result ignoring the warning and applying the Fix-It, but 
> you'd have control over this.
> 
>> On May 20, 2016, at 6:48 AM, Dan Appel via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> >google for swift print optional stackoverflow. I think that kind of speaks 
>> >for itself.
>> 
>> I think this is actually an example of why the current behavior is a good 
>> thing. I did just google that and the top comment of the first result 
>> explains what an optional is. That is very good and encourages beginners to 
>> understand how optionals work under the hood. If you hide that from them, 
>> they will only be even more confused when they see just the string "nil" pop 
>> up when it previously was showing the correct value.
>> 
>> On Thu, May 19, 2016 at 9:36 PM Krystof Vasa via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> BTW - google for swift print optional stackoverflow. I think that kind of 
>> speaks for itself.
>> 
>> > On May 19, 2016, at 6:07 PM, Jeremy Pereira via swift-evolution 
>> > <[email protected] <mailto:[email protected]>> wrote:
>> >
>> > -1
>> >
>> > This seems to me like crippling string interpolation just because 
>> > sometimes we make mistakes. 99% of the time, if I interpolate an optional, 
>> > it’s because I want it that way. I don’t want to have to put up with a 
>> > warning or write the same boilerplate 99% of the time just to flag up the 
>> > 1% more easily. Sorry.
>> >
>> >> On 18 May 2016, at 19:50, Krystof Vasa via swift-evolution 
>> >> <[email protected] <mailto:[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] <mailto:[email protected]>
>> >> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> >> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> >
>> > _______________________________________________
>> > swift-evolution mailing list
>> > [email protected] <mailto:[email protected]>
>> > https://lists.swift.org/mailman/listinfo/swift-evolution 
>> > <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> -- 
>> Dan Appel
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> -- 
> Dan Appel

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

Reply via email to