在 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中文网其他相关文章!