Перейти неизвестное поле ... в структурном литерале типа - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь определить маршруты на основе пользовательской структуры маршрутов (содержащей префикс и массив подуровней).

Я нашел код в учебнике, и он работал, как и ожидалось. Моя цель также включить новый атрибут «IsSecure (bool)» в структуру, чтобы позже я мог проверить, должен ли маршрутизатор использовать промежуточное программное обеспечение для определенного префикса маршрута или нет ...

Этофайл для структуры:

var AppRoutes []RoutePrefix // used to append routes later in the main.go

type RoutePrefix struct {
    IsSecure bool // -> causes the problem
    Prefix string
    SubRoutes []Route
}

type Route struct {
    Name string
    Method string
    Pattern string
    HandlerFunc http.HandlerFunc
}

Проблема теперь в том, что когда я пытаюсь определить новый RoutePrefix, Go возвращает следующую ошибку :

unknown field 'IsSecure' in struct literal of type router.RoutePrefix

Если я удаляю поле «IsSecure» из структуры, все работает нормально.

Вот как я определяю маршруты:

var PostRoutes = router.RoutePrefix {
IsSecure:  true,
SubRoutes: []router.Route{
        {
            Name:        "CreatePost",
            Method:      "POST",
            Pattern:     "",
            HandlerFunc: CreatePostHandler,
        },
        {
            Name:        "DeletePost",
            Method:      "DELETE",
            Pattern:     "/{postId}",
            HandlerFunc: DeletePostHandler,
        },
    },
}

Что может вызвать проблему? Я уже пытался вложить «RoutePrefix» в другую структуру, содержащую «IsSecure», которая тоже не работала.

1 Ответ

0 голосов
/ 15 октября 2019

Проблема заключалась в том, что я непреднамеренно пытался переопределить уже существующий пакет, содержащий эту структуру.

Изменение пакета решило проблему.

...