> On Nov 7, 2017, at 11:22 PM, Howard Lovatt via swift-evolution > <swift-evolution@swift.org> wrote: > > 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.
The default initialization behavior is specifically not enabled for let bindings. Compare: let x: Int? print(x as Any) // error: constant 'x' used before being initialized var y: Int? print(y as Any) So your example is perfectly consistent, because you’re only initializing ‘o’ once (along each control flow path). Slava > > -- Howard. > > On 8 November 2017 at 07:54, Adrian Zubarev via swift-evolution > <swift-evolution@swift.org <mailto:swift-evolution@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@swift.org <mailto:swift-evolution@swift.org>) schrieb: > >> Yeah, I use the first form constantly. >> >> > On 6 Nov 2017, at 23:33, Slava Pestov via swift-evolution >> > <swift-evolution@swift.org <mailto:swift-evolution@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@swift.org <mailto:swift-evolution@swift.org> >> > https://lists.swift.org/mailman/listinfo/swift-evolution >> > <https://lists.swift.org/mailman/listinfo/swift-evolution> >> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-evolution >> <https://lists.swift.org/mailman/listinfo/swift-evolution> > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org <mailto:swift-evolution@swift.org> > https://lists.swift.org/mailman/listinfo/swift-evolution > <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