2 回答

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
您還沒(méi)有分配 Response 對(duì)象,只是分配了指針。指針初始化為零。
你可以說(shuō)greets[0] := &Response{Message: "hello"}。或者,也許更好,從一個(gè)空切片和append任意數(shù)量的*Responses開(kāi)始:
greets := []*Response{} // or ResponseList{}
greets = append(greets, &Response{Message: "hello"})
greets = append(greets, &Response{Message: "goodbye"})
編輯:注意匿名者的替代方案:如果您知道Responses的數(shù)量,則可以使用文字來(lái)設(shè)置整個(gè)結(jié)構(gòu),如resp.Items = {{Message: "hello"}}. 即使 Response 是一個(gè)指針也可以工作,并且在每個(gè)Response. 很酷。

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
Go 中對(duì) slice 和 struct 文字的支持可以幫助您避免樣板并讓您的代碼正確。
以下是List使用切片文字編寫(xiě)方法的方法。
func (gs *GreetingService) List(r *http.Request, req *Request, resp *ResponseList) error {
resp.Items = []*Response{
{Message: "hello"},
{Message: "goodbye"},
}
return nil
}
- 2 回答
- 0 關(guān)注
- 251 瀏覽
添加回答
舉報(bào)