Тип не имеет поля или метода - PullRequest
0 голосов
/ 23 октября 2019

У меня проблема с методом struct. В одном файле (тот же пакет) я структура:

type Task struct {
    ID       int    `json:"id"`
    Priority string `json:"priority"`
    Content  string `json:"content"`
}

Задача поставляется как тело в POST. Разбор JSON в эту структуру работает хорошо. В другом файле у меня есть метод:

func (task *Task) createTask() (err error) {
    data, err := bson.Marshal(&task)
    if err != nil {
        return errors.New("error in parsing incoming task")
    }
    rslt, err := collection.InsertOne(context.Background(), data)
    if err != nil {
        return errors.New("error in saving task to database")
    }
    fmt.Println(rslt.InsertedID)
    return nil
}

Структура задачи находится в одном файле с моим сервером. Метод createTask () находится в файле, который обрабатывает связь с mongoDB. Когда я запускаю свой сервер, у меня появляется эта ошибка:

./server.go:53:12: task.createTask undefined (type Task has no field or method createTask)

Вот как я вызываю метод:

var task Task
json.Unmarshal(body, &task)
err = task.createTask()

Есть ли у вас какие-либо идеи, что я делаю неправильно?

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