summaryrefslogtreecommitdiff
path: root/src/library/scala/runtime/RichInt.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/scala/runtime/RichInt.scala')
-rw-r--r--src/library/scala/runtime/RichInt.scala17
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)