golang type assertion: обработка типа базы данных Это полезно при работе с динамическими типами или реализацией пользовательских интерфейсов. Чтобы сделать это, нам нужно реализовать интерфейсы Valuer и Scanner.
, однако, во время реализации этих интерфейсов мы можем встретить ошибку:не могут преобразовать значение. (Строка) (тип строки), чтобы тип *роль
Решение Scan Function:
cannot convert value.(string) (type string) to type *Role? Получение данных из базы данных. Проблема возникает потому, что мы пытаемся преобразовать значение строки типа непосредственно в указатель роли *. Вместо этого мы должны определить указатель R и присвоить значение значения, например, так:
func (r *role) Scan (value interface {}) error { *r = роль (значение. (строка)) вернуть ноль }
Решение для значения функция:
cannot convert value.(string) (type string) to type *Roleфункция значения используется при вставке или обновлении данных в базу данных. Неверная подпись была предоставлена ранее. Правильная подпись:
] func (r rol) value () (driver.value, error) { return String (r), ноль }
Обратите внимание, что эта функция не обрабатывает и не производит нулевые значения.]. Следуя этим исправлениям, мы можем успешно реализовать преобразование типа для нашего пользовательского типа роли при работе с драйверами базы данных.
]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3