[swift-evolution] [Pitch] Add the DefaultConstructible protocol to the standard library

Xiaodi Wu xiaodi.wu at gmail.com
Mon Dec 26 15:14:12 CST 2016

On Mon, Dec 26, 2016 at 2:27 PM, Adam Nemecek via swift-evolution <
swift-evolution at swift.org> wrote:

> The elements already have an Identity, the one that you get when you
> invoke the default constructor. It's 0 for Int, "" for String.

Please don't do this. Dave has already confirmed that `init()` makes no
semantic guarantees as to the value returned. It _happens_ to be the case
that Int() == 0. That does _not_ mean that semantically `Int.init()`
provides the identity element for Int.

On Mon, Dec 26, 2016 at 11:24 AM, David Sweeris <davesweeris at mac.com> wrote:
>> On Dec 26, 2016, at 11:12, Tino Heth via swift-evolution <
>> swift-evolution at swift.org> wrote:
>> There is an older discussion that is somewhat linked to this topic:
>> "Removing the empty initialiser requirement from
>> RangeReplaceableCollection"
>> https://lists.swift.org/pipermail/swift-evolution/Week-of-
>> Mon-20160704/023642.html
>> Imho "DefaultConstructible" types can be very handy, but so far, it seems
>> no one has presented a single use case that is important enough to justify
>> the inclusion in the stdlib.
>> On the other hand, I'm quite sure that there's much functionality in the
>> stdlib that many people consider as superfluous…
>> I guess adding the protocol wouldn't have a big impact on size, so for
>> for me, the question is "Does this protocol confuse users of Swift?", which
>> I'd answer with "yes, possibly" (unless someone comes up with a name that
>> is more intuitive).
>> "Identity", but, at least for many numeric types, you'd need a mechanism
>> for specifying which one you mean.
>> - Dave Sweeris
> _______________________________________________
> 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/20161226/1f180589/attachment.html>

More information about the swift-evolution mailing list