我有下面的struct
,它包含一个net/http.Request
:
type MyRequest struct {
http.Request
PathParams map[string]string
}
现在我想在下面的函数中初始化匿名内部结构http.Request
:
func New(origRequest *http.Request, pathParams map[string]string) *MyRequest {
req := new(MyRequest)
req.PathParams = pathParams
return req
}
如何使用参数origRequest
初始化内部结构体?
4条答案
按热度按时间jjhzyzn01#
或者...
请参阅:http://golang.org/ref/spec#Struct_types了解有关嵌入和字段如何命名的更多信息。
wmvff8tz2#
关于:
它表明,与其
你可能更喜欢
直接。
lmyy7pcs3#
正如Jeremy上面所示,匿名字段的“名称”与字段的类型相同。因此,如果x的值是一个包含匿名int的结构体,那么x.int将引用该字段。
c86crjj04#
为了完整起见,我还将添加另一个示例。根据@维克托的评论
此示例显示了推荐的另一种方式https://play.golang.org/p/Gbn8e6CTVi_c
@Jeffery Martinez的另一条评论帮助进一步澄清了这一点:
至于字段如何命名:“非限定类型名充当字段名。”因此
http.Request
最终被称为Request
。即:以下两个声明是等效的