Dann gibt es eine Funktion convertLdapMemberToUserOrSuperAdmin, die eine Liste von Member nimmt und eine Liste von Werten des Typs V zurückgibt, wobei V entweder User oder SuperAdmin ist. In der Funktion wird für jedes Element in der Eingabeliste ein neues Element vom Typ V erstellt, das nur Name und Email enthält, und der Liste von V hinzugefügt.
WICHTIG: User und SuperAdmin müssen wirklich 100% identlisch sein.
type User struct {
ID uint
Name string
Email string
}
type SuperAdmin struct {
ID uint
Name string
Email string
}
type Member struct {
ID uint
Key string
Name string
Email string
}
func convertMemberToUserOrSuperAdmin[V model.User | model.SuperAdmin](m []*ldapclient.Member) []V {
s := make([]V, 0)
for _, val := range m {
s = append(s, V{
Name: val.DisplayName,
Email: val.Email,
})
}
return s
}
var members []*ldapclient.Member
users := convertLdapMemberToSuperAdmin[model.SuperAdmin](members)