作为Greg Hewgill答案的补充,Ruby 1.9.3中针对此方法的源代码是:
VALUE
rb_ary_includes(VALUE ary, VALUE item)
{
long i;
for (i=0; i<RARRAY_LEN(ary); i++) {
if (rb_equal(RARRAY_PTR(ary)[i], item)) {
return Qtrue;
}
}
return Qfalse;
}
Run Code Online (Sandbox Code Playgroud)
因此,正如Greg所说,算法只是通过数组的线性搜索.