Domino 9 und frühere Versionen > Entwicklung
Nochmal Function: 2 Rückgaben (z.B. Array + Integer)
TMC:
--- Zitat von: El Indio Mapuche am 29.05.04 - 22:34:25 ---... oder den Integer in den globals deklarieren, was aber etwas dreckig ist.
Globale Variablen führen wirklich oft zu Konfusion.
--- Ende Zitat ---
Hmm, stimmt, wäre auch eine Möglichkeit, danke.
Ist aber wirklich nicht sauber.
Worum es mir hier eigentlich geht:
Ich habe hier Functions, die z.B. Arrays behandeln. Hier kippe ich ein Array rein und bekomme ein behandeltes Array zurück.
Wenn das übergebene Variant z.B. kein Array ist oder leer ist (IsArray / Isempty), dann gebe ich den reingekippten Wert 1:1 wieder zurück. Schick wäre es da, zusätzlich ein Integer zu bekommen um zu sehen, wie denn die Function gelaufen ist.
Hernan Cortez:
--- Zitat von: Thomas Völk am 29.05.04 - 22:18:59 ---alternative wäre
Array als Parameter byRef übergeben und in der Funktion füllen und das, was in der Funktion passiert als Rückgabewert
is wahrscheinlich geschickter
--- Ende Zitat ---
Leicht verdribbelt, Herr Kollege. ;D
Variablen werden in LotusScript standardmässig by reference übergeben:
--- Code: ---Sub Click(Source As Button)
Dim i As Integer
Dim ar(1) As String
ar(0) = "alt"
ar(1) = "alt"
Call doStuff(ar)
For i = 0 To Ubound(ar)
Msgbox "ar(" & Cstr(i) & ")=" & ar(i)
Next
End Sub
Sub doStuff (ar As Variant)
ar(0) = "neu"
End Sub
--- Ende Code ---
@Mathias: Das ist vielleicht die Lösung deines Problem. Du brauchst einfach den Array gar nicht zurückzugeben.
Der Funktion wird keine Kopie der Variablen übergeben (by value), sondern ein Pointer auf den Speicherbereich, wo der Inhalt der Variable steht.
Hättet ihr verdammten Zivilisten euch damals bei den Marcus Green Wochen für die Sun Certified Java Programmer certi mitgemacht, müßte das jetzt nicht mehr erklärt werden. ;D
Wenn die Variable im Parameter by Value (Kopie) übergeben wird, hat es keine Auswirkung, wenn die aufgerufene Funktion die Variable verändert.
Nähere Infos Notes Hilfe: "Passing arguments by reference and by value".
Gruß Axel
TMC:
Cool, Axel, das ist ein sehr interessanter Ansatz 8)
Werde ich gleich mal testen.
Danke.
TMC:
Genial 8)
Ich habe wohl bisher gepennt bei meinen Ansätzen.
Axel, habe gerade das Beispiel auch als Function mit Rückgabe Integer mehrmals getestet, läuft einwandfrei - habe immer auch Zugriff auf mein Array.
Dies eröffnet mir völlig neue Perspektiven für meine Functions :)
Verbessertes Errorhandlig ist zusätzlich noch ein Nebenprodukt, das ich dadurch erreiche.
Hernan Cortez:
Hab jetzt in Java für Anfänger eine neue Sektion eröffnet ("wacko practices").
http://www.atnotes.de/index.php?board=24;action=display;threadid=16065;start=0
Da wird gezeigt, wie das by reference, by value in Java läuft.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln