ldmud-3.2.9/doc/
ldmud-3.2.9/doc/efun/
ldmud-3.2.9/mud/
ldmud-3.2.9/mud/heaven7/
ldmud-3.2.9/mud/heaven7/lib/
ldmud-3.2.9/mud/lp-245/
ldmud-3.2.9/mud/lp-245/banish/
ldmud-3.2.9/mud/lp-245/doc/
ldmud-3.2.9/mud/lp-245/doc/examples/
ldmud-3.2.9/mud/lp-245/doc/sefun/
ldmud-3.2.9/mud/lp-245/log/
ldmud-3.2.9/mud/lp-245/obj/Go/
ldmud-3.2.9/mud/lp-245/players/lars/
ldmud-3.2.9/mud/lp-245/room/death/
ldmud-3.2.9/mud/lp-245/room/maze1/
ldmud-3.2.9/mud/lp-245/room/sub/
ldmud-3.2.9/mud/lp-245/secure/
ldmud-3.2.9/mud/morgengrauen/
ldmud-3.2.9/mud/morgengrauen/lib/
ldmud-3.2.9/mud/sticklib/
ldmud-3.2.9/mud/sticklib/src/
ldmud-3.2.9/mudlib/uni-crasher/
ldmud-3.2.9/pkg/
ldmud-3.2.9/pkg/debugger/
ldmud-3.2.9/pkg/diff/
ldmud-3.2.9/pkg/misc/
ldmud-3.2.9/src/autoconf/
ldmud-3.2.9/src/bugs/
ldmud-3.2.9/src/bugs/MudCompress/
ldmud-3.2.9/src/bugs/b-020916-files/
ldmud-3.2.9/src/bugs/doomdark/
ldmud-3.2.9/src/bugs/ferrycode/ferry/
ldmud-3.2.9/src/bugs/ferrycode/obj/
ldmud-3.2.9/src/bugs/psql/
ldmud-3.2.9/src/done/
ldmud-3.2.9/src/done/order_alist/
ldmud-3.2.9/src/done/order_alist/obj/
ldmud-3.2.9/src/done/order_alist/room/
ldmud-3.2.9/src/gcc/
ldmud-3.2.9/src/gcc/2.7.0/
ldmud-3.2.9/src/gcc/2.7.1/
ldmud-3.2.9/src/hosts/
ldmud-3.2.9/src/hosts/GnuWin32/
ldmud-3.2.9/src/hosts/amiga/NetIncl/
ldmud-3.2.9/src/hosts/amiga/NetIncl/netinet/
ldmud-3.2.9/src/hosts/amiga/NetIncl/sys/
ldmud-3.2.9/src/hosts/i386/
ldmud-3.2.9/src/hosts/msdos/byacc/
ldmud-3.2.9/src/hosts/msdos/doc/
ldmud-3.2.9/src/hosts/os2/
ldmud-3.2.9/src/hosts/win32/
ldmud-3.2.9/src/util/
ldmud-3.2.9/src/util/erq/
ldmud-3.2.9/src/util/indent/hosts/next/
ldmud-3.2.9/src/util/xerq/
ldmud-3.2.9/src/util/xerq/lpc/
ldmud-3.2.9/src/util/xerq/lpc/www/
Short: Tuple return values
Date: Sat, 9 Feb 2002 22:04:28 +0100 (CET)
From: Markus Peter <warp@spin.de>
Type: Feature
State: New

Hallo

Mir ist heute etwas eingefallen, was evtl. ganz nett waere fuer den 3.3er
Driver, und zwar geht es um das Problem, dass eine Methode/Funktion evtl.
mal mehr als 1 Wert zurueckgeben will. Ein Objekt will man da oft nicht
verwenden weil zu ueberdimensioniert, Pass-by-reference ist als Interface
ebenfalls unschoen, also gibt man einen Array zurueck.

Benutzt man die Methode/Funktion sieht das dann meist so aus:
mixed tmp= function();
string str= tmp[0];
int i1= tmp[1];

etc. - nicht wirklich schoen.

Perl hat dafuer eine schoene Loesung gefunden - und zwar kann man dort
ein Konstrukt der Form ($var1,$var2,@rest)=function() machen, und der
erste Wert des Rueckgabearrays wird dann an var1 zugewiesen etc.

Eigentlich sollte es nichts geben, was es verbieten wuerde, ein Element
dieser Art auch in LPC einzufuehren, also z.b.:

({str,i1})= function();

Ich faend das fuer Klarheit des Ausdrucks des Codes und Kuerze eigentlich
ganz nett, (ausserdem krieg ich dann vielleicht mal zumindestens die
Perlprogrammierer unter meinen faulen Wizards zum arbeiten ;-), kann aber
natuerlich nicht beurteilen, wieviel Aufwand das konkret bedeutet, oder ob
sich die Sprache dann fuer deinen Geschmack zu weit von seinen C-Syntax
Wurzeln wegbewegt.

-- 
Markus Peter - SPiN AG
warp@spin.de