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

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

golang中切片結(jié)構(gòu)的setter方法

golang中切片結(jié)構(gòu)的setter方法

Go
慕村225694 2023-04-17 16:10:07
我有一個(gè)定義如下的支柱type ReqJSON struct {    Request struct {        Data struct {            Object struct {                User []User `json:"user"`            } `json:"object"`        } `json:"data"`    } `json:"request"`}type User struct {    UserID string `json:"userid"`    IPAddr string `json:"ipaddr"`    Noofusers string `json:"noofusers"`    Qos string `json:"qos"`    ID string `json:"id"`    Domain string `json:"domain"`}這個(gè)結(jié)構(gòu)的setter函數(shù)如下func (j *ReqJSON) User() User     { return j.Request.Data.Object.User } func (j *ReqJSON) SetUser(u User) { j.Request.Data.Object.User = u }主要程序如下func main() {    var j ReqJSON    j.SetUser(User{            UserID:    "_id",            IPAddr:    "1.1.1.1",            Noofusers: "100",            Qos:       "34",            ID:        "kldjflkdfjlkdjfkld",            Domain:    "xyz.com",    })    b, err := json.MarshalIndent(j, "", "  ")    fmt.Println(err, string(b))}當(dāng)我嘗試制作Useras slice 時(shí),上述函數(shù)出現(xiàn)錯(cuò)誤。prog.go:27:65: 不能使用 j.Request.Data.Object.User(類型 []User)作為返回參數(shù)中的 User 類型 prog.go:28:64:不能使用 u(類型 User)作為類型 []任務(wù)中的用戶我是 Golang 的新手,所以不知道如何讓 Setter 和 Ctor 返回切片對(duì)象。
查看完整描述

2 回答

?
犯罪嫌疑人X

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

如果將單個(gè)嵌入式用戶結(jié)構(gòu)更改為用戶列表,則需要在所有位置進(jìn)行更改。Golang 是強(qiáng)類型的,一部分用戶與單個(gè)用戶結(jié)構(gòu)是不同的類型。以下代碼有效


package main


import (

    "fmt"

    "encoding/json"

)


type ReqJSON struct {

    Request struct {

        Data struct {

            Object struct {

                User []User `json:"user"`

            } `json:"object"`

        } `json:"data"`

    } `json:"request"`

}


type User struct {

    UserID    string `json:"userid"`

    IPAddr    string `json:"ipaddr"`

    Noofusers string `json:"noofusers"`

    Qos       string `json:"qos"`

    ID        string `json:"id"`

    Domain    string `json:"domain"`

}


func (j *ReqJSON) User() []User     { return j.Request.Data.Object.User } 

func (j *ReqJSON) SetUsers(u []User) { j.Request.Data.Object.User = u }


func main() {


    var j ReqJSON

    j.SetUsers([]User{

    User{

        UserID:    "_id",

        IPAddr:    "1.1.1.1",

        Noofusers: "100",

        Qos:       "34",

        ID:        "kldjflkdfjlkdjfkld",

        Domain:    "xyz.com",

    },

    })


    b, err := json.MarshalIndent(j, "", "  ")

    fmt.Println(err, string(b))

}


查看完整回答
反對(duì) 回復(fù) 2023-04-17
?
幕布斯6054654

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

它顯示錯(cuò)誤,因?yàn)镽eqJSON結(jié)構(gòu)包含一個(gè)字段,User該字段是結(jié)構(gòu)的一部分User,但是當(dāng)您設(shè)置結(jié)構(gòu)的值時(shí),User您沒(méi)有在設(shè)置函數(shù)內(nèi)部傳遞用戶結(jié)構(gòu)的一部分。


type ReqJSON struct {

? ? Request struct {

? ? ? ? Data struct {

? ? ? ? ? ? Object struct {

? ? ? ? ? ? ? ? User []User `json:"user"` // this is a slice of User struct

? ? ? ? ? ? } `json:"object"`

? ? ? ? } `json:"data"`

? ? } `json:"request"`

}

如果要初始化包含not切片的ReqJSON結(jié)構(gòu)內(nèi)部的字段,則需要在 Setter 函數(shù)中傳遞一個(gè) User 結(jié)構(gòu)切片。在 main 中傳遞用戶結(jié)構(gòu)的切片:UserUser


var u []User

u = append(u, User{

? ? UserID:? ? "_id",

? ? IPAddr:? ? "1.1.1.1",

? ? Noofusers: "100",

? ? Qos:? ? ? ?"34",

? ? ID:? ? ? ? "kldjflkdfjlkdjfkld",

? ? Domain:? ? "xyz.com",

})

j.SetUser(u)



查看完整回答
反對(duì) 回復(fù) 2023-04-17
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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