Avatar ·

Äquivalent des ternären Operators in Go: Wie schreibt man einen bedingten Ausdruck in einer Zeile?

Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, nachdem ich mehrere Jahre mit Python und JavaScript gearbeitet habe. In diesen Sprachen habe ich oft den ternären Operator für kompakte bedingte Zuweisungen verwendet, zum Beispiel:\n\n```python\nstatus = "active" if user.is_logged_in else "inactive"\n```\n\nIn Go versuche ich etwas Ähnliches:\n\n```go\npackage main\n\nimport "fmt"\n\nfunc main() {\n age := 20\n status := age >= 18 ? "взрослый" : "ребёнок"\n fmt.Println(status)\n}\n```\n\nAber der Compiler gibt einen Fehler aus. Ich verstehe, dass es in Go keinen ternären Operator gibt, aber wie kann man dann elegant eine einfache bedingte Zuweisung schreiben, ohne den Code aufzublähen?\n\nIch habe es mit if-else versucht, aber das nimmt 4-5 Zeilen statt einer ein. Gibt es eine idiomatische Methode, dies kurz zu machen? Vielleicht gibt es einen eingebauten Mechanismus oder eine allgemein akzeptierte Praxis unter Go-Entwicklern? Vielen Dank im Voraus für die Hilfe!\n\n<<>>\n

Warum es in Go keinen ternären Operator gibt und was stattdessen verwendet werden sollte

\n\n

Go ist eine Sprache, die mit Schwerpunkt auf