当前位置: 首页 > 面试题库 >

前往:数组和映射是否必须具有不同的概念/功能?

竺国兴
2023-03-14
问题内容

PHP中的数组可与数字键和字符串键一起使用。太棒了

例如:

$array[0] = "My value.";

要么

$array['key'] = "My value";

为什么不去实现这样的数组?

在Go中使用两个不同的概念和语法(映射)有什么好处?

我相信我看不到背后的用处。


问题答案:

Go不是PHP。虽然一些高级语言共享这种抽象,但这并不是很常见。数组和映射是出于不同目的的不同数据结构。

PHP的数组实际上是下面的哈希表。Go具有真实的数组,并且具有切片,这些切片是对数组的更强大的抽象。

拥有真实的数组,可以为您提供可预测的内存布局,以及真正的O(1)索引(Go的slice也是一样,它们在内部使用数组)。对基础数据存储使用哈希映射会花费所有操作的固定开销,并且无法更好地控制数据局部性。



 类似资料:
  • 问题内容: 我有一个对象: 我正在寻找一种本机方法,该方法类似于以下方法: JavaScript是否对对象具有这样的功能?(我想为Node.JS使用它,所以我不在乎跨浏览器的问题。) 问题答案: 该对象没有本地对象,但是如何处理: 但是您可以使用以下命令轻松地遍历对象: 更新资料 很多人提到,以前的方法不会返回新对象,而是对对象本身进行操作。为此,我想添加另一个解决方案,该解决方案返回一个新对象并

  • 如何定义两个类之间的< code >一对一关系?我想我在某个地方出了问题,在概念上。我不知道是什么,但确实是。 让我们假设有两个类命名为 和 : 现在对于一个国家来说,只能有一个PM,PM只能属于一个国家。如何在映射文件中执行此操作? 我在尝试这个: 但是这种有效的映射只会在运行时产生异常。它说属性在类中找不到!但是它在类中搜索吗?它应该在类中搜索。 也帮我完成这两个类之间的< code >一对一

  • 嗨,下面是我的实体,它们之间有许多联系 大学生JAVA 学生详细信息。JAVA appmain.java 下面是我的2表中的列 “学生详细信息”中的“值”应输入学生表的“用户角色” 但当我执行appmain时,我的错误率就降低了 我试图解决这个问题,但它显示出同样的错误请建议我如何解决这个问题

  • 问题内容: 不幸的是,HTML中没有CDATA。 遗憾的是,因为它非常适合添加包含XML的注释,因此您不必转义<和>,例如: 但是,可以识别CDATA部分,然后将其转换为HTML。例如: 或者它可以使用比CDATA更简单的语法。因为是可扩展的,所以可能有人添加了此功能。也许已经将它埋在里面的某处…有人知道吗? 问题答案: 您可以使用JavaDoc的标签:

  • 问题内容: Jinja2是否支持模板相对路径,例如,以包含相对于当前模板在文件系统中位置的其他模板? 问题答案: 我不相信。通常,您可以通过指定相对于您使用的任何模板加载器和环境的根的路径来包括或扩展其他模板。 因此,假设您的模板全部放入,并且您已经按照以下方式设置了Jinja: 现在,如果您想将其包括在模板中,则可以在中编写以下内容: Jinja会想出如何找到它的方法。

  • 我正在尝试使用流将一个列表映射到另一个列表。 原始列表的某些元素无法映射。也就是说,映射函数可能无法找到合适的新值。 null 对更好的方法的建议?或者我应该把溪流全部挖开,用好的旧循环?