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)