You can already write this:
extension IntegerType {
func times(block: () -> ()) {
for _ in 0..<self {
block()
}
}
}
10.times { print("hello") }
I don't know how I feel about adding that to the standard library.
> Le 18 déc. 2015 à 13:25:59, Cihat Gündüz via swift-evolution
> <[email protected]> a écrit :
>
> Dear Swift-Community,
>
> I’d like to propose an addition of a useful method, especially for beginners
> that also makes Swift much more readable in some situations: The addition of
> a .times method to Integer type(s).
>
> For example recently in one of my projects I wanted to test the scalability
> of an important piece of code and wrote this method:
>
> func testPerfQualityInPercentWithoutQualityImprovements() {
> self.measureBlock {
> let expectedQuality = 33.33
> 0.stride(to: 5_000, by: 1).forEach { _ in
> XCTAssertEqualWithAccuracy(self.crossword.qualityInPercent,
> expectedQuality, accuracy: 0.1)
> }
> }
> }
>
> As you can see what I basically wanted was to repeat the test some thousand
> times. I also like to use the Ruby language and one thing I love about it is
> that it has some really handy methods integrated to the language in
> situations like this which make the code very readable and therefore fun to
> use.
>
> I’m an even bigger fan of Swift so I’d love to see such useful methods appear
> in Swift, too and this is the first I came across that I really missed. So
> I’m asking myself, what if I could write the same code above like this:
>
> func testPerfQualityInPercentWithoutQualityImprovements() {
> self.measureBlock {
> let expectedQuality = 33.33
> 5_000.times {
> XCTAssertEqualWithAccuracy(self.crossword.qualityInPercent,
> expectedQuality, accuracy: 0.1)
> }
> }
> }
>
> I think it could be added to the Swift standard library very easily (for
> example by using the .stride method like I used) without any side effects and
> has enough advantages to be part of Swift itself. What do you think?
>
> I wish you all the best,
> Cihat
>
>
> P.S.: This is my very first mail in such a mailing list so I did everything
> correctly. ^.^
>
>
> _______________________________________________
> 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