Arrays 卢阿';s混合数组和哈希表;它存在于其他地方吗?
Lua的表实现将其元素分为两部分:数组部分和哈希部分 其他语言中有这样的东西吗 请参阅中的第4节表格Arrays 卢阿';s混合数组和哈希表;它存在于其他地方吗?,arrays,data-structures,hash,lua,lua-table,Arrays,Data Structures,Hash,Lua,Lua Table,Lua的表实现将其元素分为两部分:数组部分和哈希部分 其他语言中有这样的东西吗 请参阅中的第4节表格 我能想到的最接近Javascript的东西是—使用新建数组()创建一个数组,然后继续按数字或字符串值进行索引。这很可能是出于性能原因,一些Javascript实现选择使用两个数组,原因在您链接到的Lua文档中有说明。编辑:这并没有回答关于实现的问题。 我也这么做了 有趣的是,有些语言如何将其他语言中不同的操作合并在一起: 列表索引-a[10] 关联索引-a['foo'] 对象字段访问-a.fo
我能想到的最接近Javascript的东西是—使用
新建数组()
创建一个数组,然后继续按数字或字符串值进行索引。这很可能是出于性能原因,一些Javascript实现选择使用两个数组,原因在您链接到的Lua文档中有说明。编辑:这并没有回答关于实现的问题。
我也这么做了
有趣的是,有些语言如何将其他语言中不同的操作合并在一起:
- 列表索引-
a[10]
- 关联索引-
a['foo']
- 对象字段访问-
a.foo
- 函数/方法调用-
/a('foo')
a.foo()
- Perl是一种罕见的语言,其中顺序/关联索引具有单独的语法-
/a[10]
。好的,对象字段映射到其他操作之一,这取决于类的实现者想要使用的操作a{'foo'}
- 在Python中,所有4个都是不同的;顺序/关联索引使用相同的语法,但为它们优化了单独的数据类型
- 在Ruby中,对象字段是没有参数的方法-
a.foo
- 在JavaScript中,对象字段
是关联索引a.foo
的语法糖a['foo']
- 在Lua和AWK中,关联数组也用于顺序索引-
a[10]
- 在中,顺序和关联索引看起来像函数调用-
/(a10)
,我认为(a“foo”)
也是语法糖a.foo
<>因为C++是静态类型的语言,所以在ArayHuthHASH中只允许使用整数键(没有插入字符串或指针键的方法)。换句话说,它类似于一个具有哈希表备份的数组,用于大索引。此外,它还使用不同的哈希表实现,这比Lua表实现的内存效率低。Fortress和Clojure还将映射视为键的函数,将数组视为索引的函数。问题在于实现,而不是语言模型。原来的awk仍然由Brian Kernighan维护,它使用了一个哈希表。你是对的,我完全没有注意到!我不能投我的反对票,所以对你的答案+1。