Я хочу написать функцию, которая извлекает запись в базе данных с GORM , где структура назначения - Dynami c. Примерно так:
type User struct {
ID uint
Email string
}
type BigUser struct {
ID uint
Username string
Role string
}
func GetRecord(db *gorm.DB, u SomeUserInterfaceTypeOrSomething) {
db.Find(&u)
}
GetRecord(db, User{})
GetRecord(db, BigUser{})
Итак, если я передаю переменную User
struct, я получаю только идентификатор и электронную почту, если я передаю переменную BigUser
struct, я получаю все поля базы данных (например, ).
Мне это нужно, потому что GetRecord
будет в библиотеке, и я хочу, чтобы тот, кто будет использовать библиотеку, мог передать пользовательскую структуру для извлечения только тех полей, которые он хочет.
Я не знаю, как этого добиться, какой-либо совет или лучшая практика? Я новичок с Golang: D