[Ruby-talk]对Fixnum与的讨论

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Bob Evans在应用中发现Fixnum#sort并不使用

操作符,代码如下:

class Fixnum

@@count = 0

alias originalComparator

def (o)

@@count += 1

originalComparator(o)

end

def Fixnum.count

@@count

end

end

Running against it:

array = [5, 4, 3, 2, 1]

= [5,4,3,2,1]

array.sort

= [1,2,3,4,5]

Integer.count

= 0

Expected = 6 result 0

实际正是如此,这可以从Ruby的源代码中看出:

$ cd /v/build/ruby/ruby-1.8.1-2004.05.02/

$ less array.c

static int

sort_2(ap, bp)

...

if (FIXNUM_P(a) && FIXNUM_P(b)) {

if (a b) return 1;

if (a ptr, RARRAY(ary)-len, sizeof(VALUE),

rb_block_given_p()?sort_1:sort_2);

return ary;

}

可见,Ruby确实没有使用,而用最一般的

,

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航