пытаясь создать многоразовое приложение к структуре в го - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь сделать метод / функцию многократного использования в go, чтобы переместить структуру значений в другой фрагмент / массив в структуре

Я пытался вот так


import (
    "fmt"
)


type ErrorValidate struct {
    ErrorKey string 
    Message string  
}

type ValidateMessage struct {
     ErrorMessage []*ErrorValidate
}

func (v *ValidateMessage) AddError(err ErrorValidate) {
    v.ErrorMessage = append(v.ErrorMessage, &err)
}

func main() {
    s1 := *ValidateMessage{}
    s1.AddError(&ErrorValidate{"theKey", "string"})
    fmt.Println(*s1)
}

получил ошибку invalid indirect of ValidateMessage literal (type ValidateMessage)

ссылка здесь https://play.golang.org/p/VjdsiZQLroF

в тех случаях у меня есть функция для проверки чего-то, а затем я попытался выдвинуть сообщение об ошибке на ErrorValidate, но я продолжаю использовать добавление в моей условной, я пытаюсьчтобы уменьшить его, но получил ошибку выше

1 Ответ

2 голосов
/ 28 октября 2019

В вашем коде есть пара проблем. Эта ошибка генерирует вашу ошибку (не имеет никакого отношения к вашему добавлению или тому методу вообще):

s1 := *ValidateMessage{}

Это недопустимый синтаксис. Вы, вероятно, имели в виду s1 := &ValidateMessage{}.

s1.AddError(&ErrorValidate{"theKey", "string"})

Вы пытаетесь передать *ErrorValidate в функцию, которая принимает ErrorValidate. Это должно быть s1.AddError(ErrorValidate{"theKey", "string"}).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...