Wie iteriere ich über alle Felder einer Struktur in Go? (Iteration über struct-Felder)
Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und bin auf ein Problem gestoßen: Ich habe eine Struktur mit mehreren Feldern und muss programmatisch über alle ihre Felder iterieren, um zum Beispiel ihre Werte auszugeben oder in eine map zu serialisieren.
Hier ist ein Beispiel meiner Struktur:
```go
type User struct {
Name string
Age int
Email string
}
```
Ich möchte eine Funktion schreiben, die einen `User` entgegennimmt und alle Felder im Format `Schlüssel: Wert` ausgibt. Ich habe versucht, eine normale Schleife zu verwenden, aber Go erlaubt es nicht, über Felder einer Struktur wie über ein Array oder eine map zu iterieren.
```go
func PrintFields(u User) {
for _, field := range u { // Fehler: cannot range over u (type User)
fmt.Println(field)
}
}
```
Ich verstehe, dass dies in anderen Sprachen (z. B. in Python oder JavaScript) einfach über Dictionaries gemacht wird, aber in Go bin ich ratlos. Könnt ihr mir sagen, wie man richtig über die Felder einer Struktur iteriert? Muss ich Reflexion verwenden? Wenn ja, wie mache ich das sicher und effizient?
Ich wäre dankbar für ein Beispiel.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen