170 похожих чатов

Есть структура type User struct { ID

string `json:"id" validate:"len:36"`
Name string
Age int `validate:"min:18|max:50"`
Email string `validate:"regexp:^\\w+@\\w+\\.\\w+$"`
// Role UserRole `validate:"in:admin,stuff"`
Phones []string `validate:"len:11"`
meta json.RawMessage
inty string `validate:"regexp:\\d+"`
strhg string `validate:"in:foo,bar"`
inttt int `validate:"min:10|max:50"`
zaq int `validate:"in:256, 1024"`
}

Есть присвоение
user := User{
ID: "qwertyuiopasdfghjklzxcvbnm1234567890",
Name: "name",
Age: 20,
Email: "hgjfkdb2@baba.con",
//Role: "admin",
Phones: []string{"09876541236"},
// meta: json.RawMessage(`{"precomputed": true}`),
inty: "123456",
strhg: "bar",
inttt: 22,
zaq: 256,
}

через "reflect" делаю разбор и валидацию
До Phone все идет нормально, а начиная с inty говорит что не может быть интерфейсом
if !val.CanInterface() {
fmt.Println("no interfase")
continue
}

В чем разница этих полей?

8 ответов

7 просмотров

не знаю что у вас там именно происходит

fenogentov-Феногентов Автор вопроса

Поле Role UserRole является типом type UserRole string а при определении тип val.Kind() == reflect.String и при приведении к стрингу str := val.Interface().(string) падает в панику. Можно по человечески это разрулить?

fenogentov Феногентов
Поле Role UserRole является типом type UserRole ...

if val.Kind() == reflect.String Зачем тебе тут val.Interface????

fenogentov-Феногентов Автор вопроса
Andrey Burov
у reflect.Value есть метод CanInterface() bool

ну так оно приводится к интерфейсу, но не приводится к стрингу

fenogentov-Феногентов Автор вопроса
Andrey Burov
if val.Kind() == reflect.String Зачем тебе тут val...

intgr := val.Interface().(int) - приведение к инт str := val.Interface().(string) - приведение к стринг по другому не работает

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
я имею в виду официально интегрированный в телегу? в том плане что не сливает переписку с пользователем?
Andrey
9
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта