rand(1..10)
is now possible, cool!Also:
'est'.prepend('t') == 'test'
might be useful. rand(1..10)
is now possible, cool!Also:
'est'.prepend('t') == 'test'
might be useful. "est".prepend('t')
more useful than "t" + "est"
? I don't see why a method for prepending to a string is necessary, when it is so simple anyway...And random with a range parameter is useful shorthand.
Anyway, I'm more enthusiastic about performance improvements where file loading is concerned.
They are not exchanges for each other. Rather - they are complements.
Second, prepend is a lot faster than using + in this case. As in, a simple prepend runs in a mere 1.9% of the time (in a benchmark I just ran). Why? Fewer new objects are being created. And that means easier and fewer GC runs too.
Update: I think there is something slightly bust since on 1.9.2 using + handily beats prepend on 1.9.3. But GC has changed a lot. I'll retest on RC1 rather than preview1 ;-)
Conventionally, "bang" methods should only be created as 'dangerous' versions of non-bang methods. There was no non-bang method to make a 'dangerous' version of in this case so it's non-bang by default. This is a commonly misunderstood naming convention in Ruby (and I dare say I don't even understand all the intricacies!)
There are quite a few examples of this in Ruby. For example, Array#keep_if which changes an array in place.