[swift-evolution] Proposal: Add .times method to Integer type
Cihat Gündüz
CihatGuenduez at posteo.de
Sat Jan 9 06:52:54 CST 2016
Just an update to my thoughts about the times method in the meantime:
Currently I’m using my HandySwift <https://github.com/Flinesoft/HandySwift> framework to include a `.times` method for my own usage and I’m happy that way for now – although that solution doesn’t allow for control flow statements. I still think it is a useful feature to be added to the language but I also agree with Chris that `repeat` should be in the name somewhere, so speaking about the syntax the following would be my new proposal:
`repeat 5 times { /* code */ }`
Also somebody here asked for use cases and here’s one from the HandySwift framework where I implemented it itself (source <https://github.com/Flinesoft/HandySwift/blob/develop/Sources/Extensions/ArrayExtension.swift>):
public extension Array {
public var sample: Element? {
get {
if self.count > 0 {
let randomIndex = self.startIndex.advancedBy(Int(randomBelow: self.count))
return self[randomIndex]
}
return nil
}
}
public func sample(size size: Int) -> [Element]? {
if self.count > 0 {
var sampleElements: [Element] = []
size.times { // <== <== <== <== <== times method used here <== <== <== <== <==
sampleElements.append(self.sample!)
}
return sampleElements
}
return nil
}
}
> Am 21.12.2015 um 17:00 schrieb Stephen Celis via swift-evolution <swift-evolution at swift.org>:
>
> Just another -1. While I appreciated it in Ruby, I don't think it belongs in the Swift standard library at this time. If closures could be annotated as break/continue-able, and if the standard library started grew a lot—as Ruby's did—then maybe (I'd prefer the former and hold off on the latter, though).
>
> In the meantime, "repeat 5 { /* do something */ }" seems better to me.
>
> Stephen
>
>> On Dec 20, 2015, at 9:32 PM, T.J. Usiyan via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>> -1 from me. It is simple enough for an extension and provides little benefit as a standard library inclusion.
>>
>> On Sun, Dec 20, 2015 at 9:10 PM, Howard Lovatt via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> +1 to 5.times{stuff} from me. I much prefer library functions to language extensions.
>>
>> -- Howard.
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto: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/20160109/a9798723/attachment.html>
More information about the swift-evolution
mailing list