我知道在Java语言中,
HashMap
最常用于实现像RubyHash
这样的功能。 Java HashMap
使用名为“带有链表的独立链接”的数据结构:http://en.wikipedia.org/wiki/Hash_table
哪里可以找到Ruby hash的实现? Ruby
Hash
使用什么数据结构和算法?
请参阅文档,只需选择方法,然后单击链接:
click to toggle source
,它就会向您显示来源。
::[]
数组的单例方法:
static VALUE
rb_ary_s_create(int argc, VALUE *argv, VALUE klass)
{
VALUE ary = ary_new(klass, argc);
if (argc > 0 && argv) {
ary_memcpy(ary, 0, argc, argv);
ARY_SET_LEN(ary, argc);
}
return ary;
}
#[]
array的实例方法。::[]
hash-table(Hash
类)的单例方法。#[]
hash-table(Hash
类)的实例方法。代码意味着零大小的数组将被分配给
arr
变量:
arr = []
arr
# => []
Hash
类)的默认大小为0
:
# Array
[].size
# => 0
Array.new.size
# => 0
# Hash
{}.size
# => 0
Hash.new.size
# => 0
这些有帮助吗?
http://www.ruby-doc.org/core-2.1.0/Array.html#method-c-new
arr = []
与 arr = Array.new(0, nil)
相同,其中 0 是数组的大小。
单击以切换源并向下滚动以查看代码。
Hash 也是如此,请查看文档: