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

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

Go 錯(cuò)誤:恐慌:運(yùn)行時(shí)錯(cuò)誤:無效的內(nèi)存地址或零指針取消引用。

Go 錯(cuò)誤:恐慌:運(yùn)行時(shí)錯(cuò)誤:無效的內(nèi)存地址或零指針取消引用。

Go
侃侃無極 2023-06-05 09:16:37
我必須讓結(jié)構(gòu)說 struct1 和 struct2,struct2 包含一個(gè)帶有 struct1 的映射,struct1 也包含一個(gè)映射,我想更改 struct1 中存在的映射。這是拋出運(yùn)行時(shí)錯(cuò)誤: 恐慌:運(yùn)行時(shí)錯(cuò)誤:無效內(nèi)存地址或零指針取消引用type FailureData struct {    failuresInCommits map[string][]string }type DetectionResults struct {    Failures map[git_repo.FilePath]*FailureData        //Have other things}func (r *DetectionResults) Fail(filePath git_repo.FilePath, message            string, commits []string) {          ok := r.Failures[filePath].failuresInCommits //error occurs here            if r.Failures[filePath].failuresInCommits == nil {                   r.Failures[filePath].failuresInCommits = make(map[string][]string)        }        if len(ok) == 0 {            r.Failures[filePath].failuresInCommits[message] = commits        } else {            r.Failures[filePath].failuresInCommits[message] =                append(r.Failures[filePath].failuresInCommits[message],                       commits...)           }}
查看完整描述

1 回答

?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊

您編寫的代碼在編譯時(shí)不會(huì)彈出 nil 錯(cuò)誤。它只會(huì)在您以錯(cuò)誤的方式使用它時(shí)導(dǎo)致 nil 點(diǎn)錯(cuò)誤。


failuresInCommits map[string][]string你后來用了嗎make()?


Failures map[git_repo.FilePath]*FailureData你在'make()'之后使用過這個(gè)嗎?


好的,現(xiàn)在你專注于 ok := r.Failures[filePath].failuresInCommits,你確定r.Failures[filePath]返回'failuresIncommits,true',


如果不是,那么 r.Failures[filePath] 是 nil,好吧,你告訴我什么是nil.failuresInCommits.


還有一個(gè)風(fēng)險(xiǎn)是你只能在這個(gè)特定的包中使用 x.failureInCommits。如果你在其他一些包中做同樣的事情,x.failureInCommits 將無法訪問,因?yàn)樽侄涡懴拗啤?/p>


怎么做 ?


package main


type FilePath string


type FailureData struct {

    failuresInCommits map[string][]string

}


func NewFailureData() FailureData {

    return FailureData{

        failuresInCommits: make(map[string][]string, 0),

    }

}

func (fd *FailureData) Set(k string, v []string) {

    fd.failuresInCommits[k] = v

}


type DetectionResults struct {

    Failures map[FilePath]*FailureData

    //Have other things

}


func NewDetectionResults() *DetectionResults {

    return &DetectionResults{

        Failures: make(map[FilePath]*FailureData, 0),

    }

}

func (dr *DetectionResults) Set(fp FilePath, fd *FailureData) {

    dr.Failures[fp] = fd

}


func main() {

    fd := NewFailureData()

    dr := NewDetectionResults()

    comments := []string{"push error", "commit error", "add error"}


    fd.Set("hash-18ef8abujce8fad0h8j", comments)

    dr.Set("/etc/go/gopath/src/github.com/xxx/xxx/main.go: 12", &fd)

}


查看完整回答
反對 回復(fù) 2023-06-05
  • 1 回答
  • 0 關(guān)注
  • 166 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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