У меня есть стойка, определенная как показано ниже
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) 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))
}
Когда я пытался сделать User
в качестве среза, я получаю ошибку для вышеуказанной функции.
prog.go: 27: 65: не могу использовать j.Request.Data.Object.User (тип [] Пользователь) как тип Пользователь в возвращаемом аргументе prog.go: 28: 64: нельзя использовать u (тип Пользователь) в качестве типа [] Пользователь в назначении
Я новичок в Голанге, поэтому не могучтобы выяснить, как я могу заставить Setter и Ctor возвращать объект среза.