亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不允許分配相同的類型

不允許分配相同的類型

Go
陪伴而非守候 2022-06-13 16:41:24
我在這里定義了相同的類型,但是在編譯時出現錯誤:不能在作業 i 中使用問題(類型 []struct { Question questions.MasterQuestion })作為類型 []struct { Question questions.MasterQuestion "json:"question"" }這是我的代碼:類型文件type QuestionnaireInternal struct {    ID            string                `json:"id"`    Questionnaire InternalQuestionnaire `json:"questionnaire"`    Questions     []struct {        Question MasterQuestion `json:"question"`    } `json:"questions"`}DAL 文件qusIdxMap := make(map[string]struct{})    var questions []struct {Question questions.MasterQuestion}    for {        buf := idRows.NextBytes()        if len(buf) == 0 {            break        }        var ids []string        if de := json.Unmarshal(buf, &ids); de != nil {            return nil, de        }        for i := range ids {            if _, exists := qusIdxMap[ids[i]]; exists == false {                qusIdxMap[ids[i]] = struct{}{}            }        }        for j := range qus.Questions {            if _, exists := qusIdxMap[qus.Questions[j].Question.QuestionID]; exists {                *ERROR HERE:* **questions = append(questions, &qus.Questions[j])**            }        }        qus.Questions = questions    }
查看完整描述

1 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

這兩個結構實際上并不相同。


根據 Go 規范,字段標簽參與類型標識(強調我的):


如果兩個結構類型具有相同的字段序列,并且相應的字段具有相同的名稱、相同的類型和相同的標簽,則它們是相同的。來自不同包的非導出字段名稱總是不同的。


由于您使用的是匿名結構,因此您必須在questionsvar 聲明中添加相同的標記:


var questions []struct {Question questions.MasterQuestion `json:"question"`}

或者你可以定義一個Question類型:


type QuestionnaireInternal struct {

    ID            string                `json:"id"`

    Questionnaire InternalQuestionnaire `json:"questionnaire"`

    Questions     []Question            `json:"questions"`

}


type Question struct {

    Question MasterQuestion `json:"question"`

}

接著


var questions []Question


查看完整回答
反對 回復 2022-06-13
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號