我有以下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
?
答案 0 :(得分:33)
req := new(MyRequest)
req.PathParams = pathParams
req.Request = origRequest
...或
req := &MyRequest{
PathParams: pathParams
Request: origRequest
}
有关嵌入以及如何命名字段的详细信息,请参阅:http://golang.org/ref/spec#Struct_types。
答案 1 :(得分:16)
怎么样:
func New(origRequest *http.Request, pathParams map[string]string) *MyRequest {
return &MyRequest{*origRequest, pathParams}
}
它显示而不是
New(foo, bar)
您可能更喜欢
&MyRequest{*foo, bar}
直接
答案 2 :(得分:6)
正如Jeremy所示,匿名字段的“名称”与字段的类型相同。因此,如果x的值是包含匿名int的结构,则x.int将引用该字段。