[swift-evolution] Proposal: Add .times method to Integer type

Félix Cloutier felixcca at yahoo.ca
Fri Dec 18 12:31:41 CST 2015


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 <swift-evolution at swift.org> 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
> 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/20151218/53e75afe/attachment.html>


More information about the swift-evolution mailing list