> Array already has init(repeating:count:) that puts the responsibility of
choosing the default value at the call site. If someone were writing a
generic algorithm around this, then why not just propagate that
responsibility out to its call site as well? That way, the algorithm isn't
making any assumptions about what the "default" value is or even if one
exists,

Because encapsulation. There's a reason NSObject has a default initializer.

On Mon, Dec 26, 2016 at 12:10 PM, Tony Allevato via swift-evolution <
[email protected]> wrote:

> On Mon, Dec 26, 2016 at 11:57 AM David Sweeris via swift-evolution <
> [email protected]> wrote:
>
>>
>> On Dec 26, 2016, at 11:35, Tony Allevato <[email protected]> wrote:
>>
>> Mathematically, identities are associated with (type, operation) pairs,
>> not types alone.
>>
>> This conversation has put me in the column of "numeric types shouldn't
>> have default initializers at all", personally.
>>
>>
>> I'd agree, except sometimes you need a T, *any* T, for when you want to
>> create a "pre-sized" array for stuffing results into by index:
>> for i in ... {
>>     a[i] = ...
>> }
>> Simply saying "var a =[T](); a.reserveCapacity()" doesn't cut it because
>> it'll still crash if you try to store anything in a[i] without somehow
>> putting at least i+1 elements in the array first.
>>
>
> Array already has init(repeating:count:) that puts the responsibility of
> choosing the default value at the call site. If someone were writing a
> generic algorithm around this, then why not just propagate that
> responsibility out to its call site as well? That way, the algorithm isn't
> making any assumptions about what the "default" value is or even if one
> exists, and it doesn't impose additional requirements on the element type.
> For example, the user could get the default from a static factory method,
> an instance method on another object, or something else entirely.
>
>
>
>>
>> - Dave Sweeris
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to