Ich hatte noch vergessen zu erwähnen, dass es ja auch unschön und nicht gerade performant ist eine Funktion mit einem Array-Index als Parameter mehrfach aufzurufen, nur um an die Inhalte des Arrays zu gelangen.
Das muß man nicht erwähnen, das liegt auf der Hand.
Es ist "unschön und nicht gerade performant", wenn man eine Funktion mehr Werte ermitteln und zurückgeben läßt als man braucht um die Werte dann auseinanderzunehmen.
Es ist "unschön und nicht gerade performant", wenn man mehrere Werte einer Funktion haben will sich aber nur einzelne zurückgeben läßt und ie Funktion so mehrfach aufrufen muß.
Die Lösung ist, wie so oft, man tut das was für den konkreten Fall sinnvoll ist. Wobei es auch sinnvoll sein kann, Funktionen einfachzuhalten und man dann lieber immer das leiche Array mit ggf. zu viele Werten zurückgibt. Die Nachteile davon sind i.d.R. klein.