第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

切片上的無(wú)效內(nèi)存地址或 nil 指針取消引用

切片上的無(wú)效內(nèi)存地址或 nil 指針取消引用

Go
三國(guó)紛爭(zhēng) 2021-07-08 17:01:41
為什么invalid memory address or nil pointer dereference跑步時(shí)會(huì)打招呼?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}
查看完整描述

2 回答

?
寶慕林4294392

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. 很酷。


查看完整回答
反對(duì) 回復(fù) 2021-07-12
?
滄海一幻覺(jué)

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

}


查看完整回答
反對(duì) 回復(fù) 2021-07-12
  • 2 回答
  • 0 關(guān)注
  • 251 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)