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

Cihat Gündüz CihatGuenduez at posteo.de
Fri Dec 18 12:25:59 CST 2015


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. ^.^

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151218/f2075a55/attachment.html>


More information about the swift-evolution mailing list