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