我有以下的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
?
关于什么:
func New(origRequest *http.Request, pathParams map[string]string) *MyRequest {
return &MyRequest{*origRequest, pathParams}
}
它显示的是代替
New(foo, bar)
你可能更喜欢只
&MyRequest{*foo, bar}
直。
req := new(MyRequest)
req.PathParams = pathParams
req.Request = origRequest
要么...
req := &MyRequest{
PathParams: pathParams
Request: origRequest
}
请参阅: http://golang.org/ref/spec#Struct_types更多有关嵌入和领域得到的命名方式。
正如上面杰里米示出,所述一个匿名字段的“name”是一样的场的类型。 因此,如果x的值是包含匿名INT一个结构,然后将x.int指的领域。