Hi,
I do not like that the Array "at" method is overloaded. I think currently
one advice in Ruby is to prefer "arr.at(i)" to "arr[i]" because in
"arr[i]" the intrepreter needs to check the type of i. If Array "at" is
overloaded like below, probably the corresponding C function will be
modified from
static VALUE rb_ary_at (VALUE ary, VALUE pos)
to
static VALUE rb_ary_at (VALUE self, VALUE args)
which means more overhead, as every time the Array "args" has to be
created, or to
static VALUE rb_ary_at (int argc, VALUE *argv, VALUE self)
{
VALUE args;
rb_scan_args (argc, argv, "0*", &args);
....
with the same effect.
Regards,
Bill
============================================================================
dblack / candle.superlink.net wrote:
>> |I think I would still like this better:
>> |
>> | arr.at(0,2,4).select { |s| s == "c" }
>>
>> I admit this is better in some aspect.
>>
>> Does "at" takes multiple placement make you feel natural?
>> And is this natural for Hashes?
> For Arrays I do like at(x,y,z). It seems natural to me. For Hashes,
> I don't think I usually refer to a value as being "at" a key... but it
> sounds sort of right.