Golang 结构体初始化

2024-05-24

有一个像这样的简单结构:

type Event struct {
    Id         int
    Name       string
}

这两种初始化方法有什么区别呢?

e1 := Event{Id: 1, Name: "event 1"}
e2 := &Event{Id: 2, Name: "event 2"}

为什么我要使用这两种初始化方法?


第一种方法

e1 := Event{Id: 1, Name: "event 1"}

正在初始化变量e1作为具有类型的值Event.

第二

e2 := &Event{Id: 1, Name: "event1"}

is initializing e2 as a pointer to a value of type Event As you stated in the comments, the set of methods defined on a value of a given type are a subset of the set of methods defined on a pointer to a value of that type. This means that if you have a method

func (e Event) GetName() string {
    return e.Name
}

然后两个e1 and e2可以调用此方法,但如果您有其他方法,请说:

func (e *Event) ChangeName(s string) {
    e.Name = s
}

Then e1无法使用ChangeName方法,同时e2 is.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang 结构体初始化 的相关文章

随机推荐

  • java中如何将String转换为Hashmap

    我怎样才能转换String into a HashMap String value first name naresh last name kumar gender male into Map
  • 如何创建一个非单例的 Angular JS 服务?

    因为每个服务都是单例 调用 injector get 每次仍然给我相同的实例 如何在另一个服务中使用一个服务的多个实例 请记住 我的非单例类的声明不得污染全局命名空间等 我的示例如下 我希望 injector get serviceCall
  • 在c++中的嵌入式python中导入tensorflow时出错

    我的问题是关于在 C 程序中嵌入 Python 3 5 解释器以从 C 接收图像 并将其用作我训练的张量流模型的输入 当我在 python 代码中导入tensorflow库时 出现错误 其他库工作正常 简化后的代码如下 include
  • Javascript:按 div 内的内容对链接进行排序

    我有一个包含一组链接的 div 我的目标是按内容自动对这些链接进行排序 请按照以下示例进行操作以更好地理解 before div a href http something45yer com Content3 a a href http s
  • 为开发人员记录访问应用程序[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要记录一个完全由高级用户创建 开发和维护超过 10 年的 MS Access 应用程序 这是一个有趣的情况 因为他们想要的是一本手册 以便未
  • 如何在gitlab中发布javadoc?

    如何在gitlab中发布javadoc 到目前为止 我已将 java docs html 页面添加到存储库中 但是当我尝试查看它们时 会显示原始文本 html 源 而不是呈现的 html 页面 有可能吗 为任何偶然发现这个问题的人提供更新
  • 在 Core Api 上自动登录 Dropbox 帐户,无需登录提示

    我是 iOs 开发新手 正在创建一个使用我自己的 Dropbox 帐户的应用程序 我希望我的应用程序自动登录我的帐户 以便能够修改和添加我的应用程序文件夹中的文件 文件说我应该打电话 DBSession sharedSession link
  • Java字符串乘法[重复]

    这个问题在这里已经有答案了 可能的重复 我可以在java中将字符串相乘以重复序列吗 https stackoverflow com questions 2255500 can i multiply strings in java to re
  • 使用嵌入qt的mysql?

    我正在尝试使用嵌入 QT 的 mysql 我已经有一个与 mysqld 链接的 Qt mysql 插件 该插件可以很好地加载嵌入式数据库 但 QT 没有简单的方法来设置 dataDir 等嵌入式选项 我在这里看到 http doc qt i
  • 无法在 yeoman Angular 生成的 Web 应用程序中生成“dist”文件夹

    我无法生成dist使用 yeoman 角度生成器构建和生成的 Web 应用程序中的文件夹 我正在粘贴 grunt 构建的详细内容 请检查这是否有帮助 pdc1 f3t18r1 ShippingSolution administrator g
  • 简单信号 - C 编程和报警功能

    include
  • 无法调用 XInitThreads

    我编写了一个 SFML C 游戏 并尝试开始使用线程 但过了一会儿一切都崩溃了 经过搜索 我发现修复似乎是调用 XInitThreads 但这在某种程度上不起作用 简化代码 include
  • 如何在 Xamarin Forms 中做出长按手势?

    您能否告诉我如何识别 Xamarin Forms 应用程序中的长按手势 前几天我用过TapGestureRecognizer TapGestureRecognizer imageTap new TapGestureRecognizer im
  • 如何检查该字段是否存在? SAP 图形用户界面脚本

    如何检查该字段是否存在 我尝试过这个 If session findById wnd 1 setFocus Then 你可以尝试例如下列 on error resume next session findById wnd 1 setfocu
  • Git hook:如果创建了新分支,则将新文件添加到存储库

    我正在编写一个 git hook 它检查是否创建了新分支 如果是 则将一些预定义文件添加到该新分支的存储库中 一些配置文件 然而 由于分支实际上正在创建过程中 所以我的逻辑失败了 目前我正在这样做post receive钩子 看起来像这样
  • 跨平台套接字

    我知道 Windows 不使用 UNIX 套接字 而 Mac OS 使用 到目前为止 我的软件是跨平台的 没有任何代码更改 但现在我想让它进行一些网络通信 我了解 POSIX 套接字 但我对 Windows 的套接字一无所知 目标是实现一个
  • 对翻译进行语义标记

    我正在标记一份历史手稿 该手稿已从德文翻译成英文 在网页上 我将并排提供两种语言 是否有一种可接受的方法来标记这种情况 我正在考虑使用部分标签分割翻译块并为每个翻译块提供一个 lang 属性 然而 从语义上讲 这无法传达一个部分与另一部分大
  • 连接数据库错误类型:2002:权限被拒绝

    我正在尝试使用以下脚本连接数据库 cxn test php
  • TranslateAnimation 在 Android 上如何工作?

    我经历了 TranslateAnimation float fromXDelta float toXDelta float fromYDelta float toYDelta 但我仍然很困惑如何Translate animation wor
  • Golang 结构体初始化

    有一个像这样的简单结构 type Event struct Id int Name string 这两种初始化方法有什么区别呢 e1 Event Id 1 Name event 1 e2 Event Id 2 Name event 2 为什