[swift-evolution] [Pitch] Improve `init(repeating:count)`
Adrian Zubarev
adrian.zubarev at devandartist.com
Thu Aug 17 04:38:48 CDT 2017
This is a small pitch which I will abandon if there is not much appetite for such improvement. ;)
I would like to propose an improvement to an initializer of all collection types that provide: init(repeating repeatedValue: Element, count: Int).
This change is meant to support reference type initialization on each iteration of the internal for-loop rather than copying the same references n times.
The change would be really straightforward and should not break existing code, except that the behavior would change for class types.
Instead of:
init(repeating repeatedValue: Element, count: Int)
let threeViews = Array(repeating: UIView(), count: 3) // contains 1 view 3 times
we would have:
init(repeating repeatedValue: @autoclosure () -> Element, count: Int)
This simple change would allow us to construct an array of different objects instead of an array with n references to the same object.
let threeViews = Array(repeating: UIView(), count: 3) // contains 3 different views
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170817/876dfefd/attachment.html>
More information about the swift-evolution
mailing list