Ger*_*ens 1 google-app-engine go google-cloud-endpoints
为什么invalid memory address or nil pointer dereference跑步时问候给我?
type Response struct {
Message string `json:"message"`
}
type ResponseList struct {
Items []*Response `json:"items"`
}
func (gs *GreetingService) List(r *http.Request, req *Request, resp *ResponseList) error {
greets := make([]*Response,2,2)
greets[0].Message="hello"
greets[1].Message="goodbye"
resp.Items = greets
return nil
}
Run Code Online (Sandbox Code Playgroud)
您尚未分配Response对象,只是指针.指针是零.
你可以说greets[0] := &Response{Message: "hello"}.或者,或许更好,从一个空切片开始,并append根据*Response需要开始:
greets := []*Response{} // or ResponseList{}
greets = append(greets, &Response{Message: "hello"})
greets = append(greets, &Response{Message: "goodbye"})
Run Code Online (Sandbox Code Playgroud)
编辑:注意匿名的替代方法:如果您知道Responses 的数量,则可以使用文字来设置整个结构,如resp.Items = {{Message: "hello"}}.即使Response是一个指针也可以工作,并且每个都没有明确的类型名称Response.很酷.
| 归档时间: |
|
| 查看次数: |
679 次 |
| 最近记录: |