[swift-evolution] Pitch: Remove default initialization of optional bindings

Howard Lovatt howard.lovatt at gmail.com
Wed Nov 8 01:22:15 CST 2017


Not a big deal either way, but I prefer the 2nd (nil) form and therefore
would like to see the 1st form go. It would make Swift more consistent,
consider:

let o: Int? // Looks like nil is assigned.
if someTest {
    o = 1 // Why isn't this an error? (OK I know why - but it looks odd.)
} else {
    o = nil
}


Whilst the above works it is weird because if you are aware that o: Int?
normally assigns nil then the above looks like o, which is a let, is
assigned to twice. If you do the equivalent of the above for a non-optional
it is an error.

  -- Howard.

On 8 November 2017 at 07:54, Adrian Zubarev via swift-evolution <
swift-evolution at swift.org> wrote:

> Same here, but I wouldn’t care much if it were gone.
>
>
> Am 7. November 2017 um 21:40:56, David Hart via swift-evolution (
> swift-evolution at swift.org) schrieb:
>
> Yeah, I use the first form constantly.
>
> > On 6 Nov 2017, at 23:33, Slava Pestov via swift-evolution <
> swift-evolution at swift.org> wrote:
> >
> > Hi all,
> >
> > Right now, the following two declarations are equivalent:
> >
> > struct S {
> > var x: Int?
> > }
> >
> > struct S {
> > var x: Int? = nil
> > }
> >
> > That is, mutable bindings of sugared optional type (but not
> Optional<T>!) always have a default value of ‘nil’. This feature increases
> the surface area of the language for no good reason, and I would like to
> deprecate it in -swift-version 5 with a short proposal. Does anyone feel
> strongly about giving it up? I suspect most Swift users don’t even know it
> exists.
> >
> > Slava
> > _______________________________________________
> > swift-evolution mailing list
> > swift-evolution at swift.org
> > https://lists.swift.org/mailman/listinfo/swift-evolution
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20171108/6c8ee9b6/attachment.html>


More information about the swift-evolution mailing list