diff options
Diffstat (limited to 'src/library/scala/runtime/RichInt.scala')
-rw-r--r-- | src/library/scala/runtime/RichInt.scala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/library/scala/runtime/RichInt.scala b/src/library/scala/runtime/RichInt.scala index 47d4b458c1..0c950cef8d 100644 --- a/src/library/scala/runtime/RichInt.scala +++ b/src/library/scala/runtime/RichInt.scala @@ -32,6 +32,23 @@ final class RichInt(val start: Int) extends Proxy with Ordered[Int] { def max(that: Int): Int = if (start > that) start else that def abs: Int = if (start < 0) -start else start + /** Execute a block of code this many times. + * For instance: 5 times { println("hello") } + * + * N.B. this way of repeatedly executing an action has + * far superior performance to any other approach in the + * library. It's not just syntactic sugar, it is faster + * than anything but a locally implemented while loop and + * of course less error prone than the while loop. + */ + def times(body: => Unit) { + var i = 0 + while (i < start) { + body + i += 1 + } + } + def toBinaryString: String = java.lang.Integer.toBinaryString(start) def toHexString: String = java.lang.Integer.toHexString(start) def toOctalString: String = java.lang.Integer.toOctalString(start) |