Avatar ·

Wie erstellt man korrekt Konstruktoren in Go, wenn es keine Klassen und Konstruktoren gibt?

Hallo zusammen! Ich habe gerade angefangen, Go nach Python und Java zu lernen, und bin auf ein ernsthaftes Problem gestoßen. In Go gibt es keine Klassen im herkömmlichen Sinne und keine Konstruktoren. Wie erstellt man dann Objekte mit komplexer Initialisierungslogik?\n\nAngenommen, ich möchte eine Struktur `User` mit den Feldern `Name`, `Email` und `Age` erstellen. Idealerweise möchte ich, dass bei der Erstellung eines Benutzers die E-Mail auf Gültigkeit geprüft wird, das Alter nicht negativ sein darf und der Name nicht leer ist. In Python würde ich `__init__` schreiben, in Java einen Konstruktor mit Prüfungen. Aber wie macht man das in Go?\n\nBisher mache ich es so:\n\n```go\ntype User struct {\n Name string\n Email string\n Age int\n}\n\nfunc main() {\n u := User{\n Name: "Alice",\n Email: "alice@example.com",\n Age: 30,\n }\n // Aber hier gibt es keine Prüfungen! Man kann