”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Go 中的“new()”函数和“&”内存地址运算符有什么区别?

Go 中的“new()”函数和“&”内存地址运算符有什么区别?

发布于2024-11-08
浏览:910

What\'s the Difference Between the \

new()和“&”运算符的区别

Go中new()函数和“&”内存地址运算符都用于分配内存。然而,它们的用法之间存在一些细微的差异。

功能比较

new()和&运算符都返回指向新分配的内存地址的指针。但是,它们的语法有所不同:

  • v := &Vector{} 使用“&”运算符获取空 Vector 结构体的地址。
  • v := new( Vector) 使用 new() 函数创建指向新 Vector 结构体的指针。

类型分析

如提供的代码示例所示,反射分析表明 &Vector{} 和 new(Vector) 返回相同类型的指针,因为两者都是指向 Vector 结构体实例的指针。

历史混乱

Go 邮件列表之前讨论过使用 new() 和 & 进行内存分配的担忧,因为它可能会导致混乱。

特殊情况

值得注意的是,new()是获取指向未命名基本类型的指针的唯一方法,例如一个整数。这可以在下面的示例中看到:

p := new(int) // valid
p := &int{0} // invalid

首选项和用法

最终,使用 new() 和 & 进行内存分配之间的选择很大程度上取决于个人喜好。两种方法具有相同的功能并产生相同的结果。然而,重要的是要意识到这两个运算符之间的细微差别,并根据具体要求适当地使用它们。

版本声明 本文转载于:1729661717如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何将 Boehm 垃圾收集器与 C++ 标准库类(如“std::vector”和“std::string”)集成?
    如何将 Boehm 垃圾收集器与 C++ 标准库类(如“std::vector”和“std::string”)集成?
    将 Boehm 垃圾收集器与 C 标准库结合使用开发多线程 C 应用程序时,Boehm 保守的垃圾收集器对于简化内存非常有用管理。这就提出了如何将 Boehm GC 与 C 标准库的类(如 std::map 和 std::vector)集成的问题。一种方法涉及重新定义全局运算符 ::new 以使用 ...
    编程 发布于2024-11-08
  • 如何在 PHP 中通过 SSH 安全连接到远程 MySQL 服务器?
    如何在 PHP 中通过 SSH 安全连接到远程 MySQL 服务器?
    在 PHP 中通过 SSH 安全连接到远程 MySQL 服务器要为 PHP 数据库连接建立安全隧道,以下 SSH 隧道解决方案提供了一种强大的方法。SSH 隧道设置创建一个通往 MySQL 数据库服务器的 SSH 隧道。为此,请使用如下命令:ssh -fNg -L 3307:10.3.1.55:33...
    编程 发布于2024-11-08
  • 混淆技术真的可以保护可执行文件免受逆向工程的影响吗?
    混淆技术真的可以保护可执行文件免受逆向工程的影响吗?
    保护可执行文件免遭逆向工程:解决方案有限的挑战保护代码免遭未经授权的逆向工程是开发人员持续关注的问题,尤其是当它包含敏感信息。虽然已经提出了各种方法,但重要的是要承认完全防止逆向工程实际上是不可能的。常见混淆技术用户建议的策略,例如代码注入、混淆和自定义启动例程的目的是使反汇编变得不那么简单。然而,...
    编程 发布于2024-11-08
  • 掌握 Laravel 中的 Eloquent where 条件
    掌握 Laravel 中的 Eloquent where 条件
    Laravel 的 Eloquent ORM(对象关系映射)是其突出的功能之一,提供了一种与数据库交互的强大而富有表现力的方式。 Eloquent 提供的一项基本功能是方法,它允许开发人员高效、直观地过滤查询。在本文中,我们将深入研究 where 条件,探索其各种形式和实际用例。 ...
    编程 发布于2024-11-08
  • 在 Gmail 的 Chrome 12+ 更新中如何从剪贴板粘贴图像?
    在 Gmail 的 Chrome 12+ 更新中如何从剪贴板粘贴图像?
    将剪贴板中的图像粘贴到 Gmail:Chrome 12 中的操作方法 Google 宣布能够将剪贴板中的图像直接粘贴到 Gmail使用 Chrome 12 的 Gmail 引发了人们对其底层机制的好奇。尽管使用了最新的 Chrome 版本,一些用户仍然无法找到有关如何在 Webkit 中实现此增强功...
    编程 发布于2024-11-08
  • JavaScript 演示场景竞赛 - JS 版
    JavaScript 演示场景竞赛 - JS 版
    JS1024 于 2024 年回归! 准备好迎接激动人心的挑战! JS1024 回归,通过在 JavaScript、HTML 或 GLSL 中创建令人惊叹的演示(全部在 1024 字节限制内),将开发人员推向极限。无论您是经验丰富的编码员还是新手,这都是您展示创造力和技术技能的机会...
    编程 发布于2024-11-08
  • 第九届 TCmeeting 的更新
    第九届 TCmeeting 的更新
    议程上有几个项目,本文重点介绍第 104 次 TC39 会议 [2024 年 10 月 8 日至 10 日] 的功能提案及其进展。 第一阶段: 表示度量:建议在 JavaScript 中使用适当的单位格式化和表示度量。 Immutable ArrayBuffers:添加 ArrayB...
    编程 发布于2024-11-08
  • 如何使用 CSS 在图像地图上实现鼠标悬停效果?
    如何使用 CSS 在图像地图上实现鼠标悬停效果?
    使用 CSS 设置图像地图鼠标悬停样式创建交互式网页时,通常需要包含具有可单击区域的图像。通常,这是使用图像映射来实现的。然而,事实证明,在鼠标悬停时设置这些区域的样式以提供额外的交互性是难以实现的。过去,尝试使用 CSS 设置这些区域的样式所取得的成功有限,如提供的示例所示:<img src...
    编程 发布于2024-11-08
  • 升级您的前端游戏:无头和静态未来的学习框架
    升级您的前端游戏:无头和静态未来的学习框架
    前端领域正在以惊人的速度发展。忘掉笨重、单一的网站吧——未来属于无头 CMS 和静态网站生成器 (SSG)。这些时尚的强大功能提供了无与伦比的速度、灵活性和安全性,但征服它们需要使用正确的工具。 为了利用他们的力量,开发人员正在转向 Next.js 和 Gatsby,这两个尖端的前端框架塑造了我们...
    编程 发布于2024-11-08
  • 如何修复 PyGame 动画闪烁:故障排除和解决方案
    如何修复 PyGame 动画闪烁:故障排除和解决方案
    PyGame 动画闪烁:故障排除和解决方案运行 PyGame 程序时,您可能会遇到动画闪烁的问题。这可能会令人沮丧,特别是如果您不熟悉使用该框架。PyGame 中动画闪烁的根本原因通常是多次调用 pygame.display.update()。不应在应用程序循环中的多个点更新显示,而应仅在循环结束时...
    编程 发布于2024-11-08
  • JavaScript 中的声明式编程与命令式编程
    JavaScript 中的声明式编程与命令式编程
    当谈到编程方法时,经常会出现两种常见的方法:声明式编程和命令式编程。每个都有其优点和理想的用例,尤其是在 JavaScript 中。让我们通过一些例子来探讨这两种风格。 命令式编程:告诉计算机如何做 命令式编程就像给出一组详细的指令。你告诉计算机如何一步步达到特定的结果。将其视为指导...
    编程 发布于2024-11-08
  • 掌握 NestJS 中的数据验证:类验证器和类转换器的完整指南
    掌握 NestJS 中的数据验证:类验证器和类转换器的完整指南
    Introduction In the fast-paced world of development, data integrity and reliability are paramount. Robust data validation and efficient handl...
    编程 发布于2024-11-08
  • 有多少 Python 包的版本控制正确?
    有多少 Python 包的版本控制正确?
    前几天,当我研究Python包中的漏洞数据库时,我意识到其中的一些包版本无法轻松解析并与其他版本字符串进行比较,因为它们不遵守Python 版本控制 - 旧的 PEP 440 或取代它的版本说明符规范。所以我开始想知道这种情况有多普遍。 Python 包索引上有多少包实际上具有有效版本? 显而易见的...
    编程 发布于2024-11-08
  • 如何在 Web 应用程序中有效地对 Ajax 请求进行排序?
    如何在 Web 应用程序中有效地对 Ajax 请求进行排序?
    排序 Ajax 请求在许多 Web 应用程序中,通常会遇到需要迭代集合并对每个元素发出 Ajax 请求的情况。虽然利用异步请求来避免浏览器冻结很诱人,但有效管理这些请求可以防止服务器过载和其他潜在问题。jQuery 1.5 对于 jQuery 1.5 及更高版本,$. ajaxQueue() 插件提...
    编程 发布于2024-11-08
  • JavaScript 中“%”运算符的作用是什么?
    JavaScript 中“%”运算符的作用是什么?
    揭开 JavaScript 中 % 运算符的本质JavaScript 中神秘的 % 符号被称为模运算符。它在数学运算中发挥着关键作用,它返回一个操作数除以另一个操作数后的余数。模运算符通常表示如下:var1 % var2其中var1 和 var2 代表操作数。例如,如果我们有表达式 12 % 5,结...
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3