首页 > 后端开发 > Golang > 正文

如何在 Go 中初始化嵌入式结构:两种方法指南

Susan Sarandon
发布: 2024-11-17 15:44:02
原创
307 人浏览过

How to Initialize an Embedded Struct in Go: A Two-Approach Guide

在 Go 中初始化嵌入式结构体

在 Go 中使用嵌入式结构体时,常见场景涉及初始化内部匿名结构体。本文解决了这种情况,让您清楚地了解如何使用两种方法实现初始化。

考虑以下嵌入式结构体 MyRequest:

type MyRequest struct {
    http.Request
    PathParams map[string]string
}
登录后复制

要初始化 MyRequest,我们需要设置其嵌入的 http.Request 结构的值。实现方法如下:

func New(origRequest *http.Request, pathParams map[string]string) *MyRequest {
    req := new(MyRequest)
    req.PathParams = pathParams
    req.Request = origRequest
    return req
}
登录后复制

在这种方法中,我们首先创建一个新的 MyRequest 对象并将其分配给 req.然后我们相应地设置 PathParams 字段。随后,我们通过引用 req.Request 来访问和设置嵌入的 http.Request 结构。

或者,我们也可以使用以下语法初始化嵌入的结构:

req := &MyRequest{
  PathParams: pathParams
  Request: origRequest
}
登录后复制

这里,我们创建具有所需字段的匿名结构。为了正确初始化,在嵌入结构名称前添加“&”前缀非常重要。这会产生具有所需值的 MyRequest 对象。

两种方法都有效地初始化 MyRequest 中嵌入的 http.Request 结构,允许您根据需要自定义和使用它。如需进一步参考,请参阅有关嵌入式结构的命名字段的 Go 规范。

以上是如何在 Go 中初始化嵌入式结构:两种方法指南的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板