Hallo,
gibt es in LS "Call by Value/Reference" so wie in C++???
Mehrere Rückgabewerte...
- client
- Erledigt
-
-
Ich kann kein C, aber such in der Designer-Hilfe mal nach "ByVal". Vielleicht ist es ja das, was du willst...
-
Ja, schau mal in die Designer Hilfe.
Da ist das genau erläutert -
irgend wie klappt das nicht...
ich möchte aus meiner hauptfunktion 2 werte an die unterfunktion übergeben. diese werte werden dann dort überschrieben, aber nicht zurückgegeben... -
Standardmäßig werden in Lotus Script alle Variablen per Reference übergeben, d.h. veränderst du sie in der Funktion sind sie auch im aufrufenden Teil verändert.
Verwendest du das Schlüsselwort ByVal werden immer nur Kopien übergeben.
Wie sieht denn dein Aufruf und deine Funktion aus ?
-
Problem gelöst...habs gefunden
Danke -
Könntest du dann bitte noch sagen woran es lag, damit ein anderer der ein ähnliches Problem hat auch gleich die Lösung findet.
-
ich habe einfach dem Funktionsaufruf "Call" davor geschrieben und auf einmal konnte ich mit "reference" arbeiten !?!?!? komisch...
-
Habe das Problem wieder gehabt!!!
Beim Aufruf einer Class-Methode muss man auch unbedingt "Call" davor setzen!Heißt es deswegen "Call" by Reference? :hammer:
-
was rufst du eigentlich auf (API, Function, Sub)?
Also im Notes werden Argumente immer als Referenz übergeben. will ich es als Wert, dann muss ich diese immer explizit angeben.
Beispiel:
Sub xyz(arg1 as string, ByVal Arg2 as string)
arg1 ... wird als Referenz übergeben
arg2 ... wird als Wert (Value) übergebenGruß
Dirk -
Als Sub und Function!
-
bei einer Function würde es dann so ähnlich aussehen.
Beispiel:
Function xyz(arg1 as string, ByVal Arg2 as string) as string
arg1 ... wird als Referenz übergeben
arg2 ... wird als Wert (Value) übergebenAuszug aus der NotesHilfe zum Thema Call
ZitatCalls a LotusScript sub or function.
Syntax 1
Call subOrFunction [ ( [ argList ] ) ]
Syntax 2
subOrFunction [ argList ]
Syntax 3
subOrFunction ( argPassedByVal )
Syntax 4 (functions only)
returnVal = function [ ( [ argList ] ) ]Wegen Syntax 1 und 2 spielt es keine Rolle, ob eine Sub mit
Call xyz(arg1, arg2)
oder
xyz arg1, arg2
aufgerufen wird.Gruß
Dirk -
Zitat
Wegen Syntax 1 und 2 spielt es keine Rolle, ob eine Sub mit
Call xyz(arg1, arg2)
oder
xyz arg1, arg2
aufgerufen wird.Sollte eigentlich keine Rolle spielen!!!
Probier mal aus! -
ich nutze beide Versionen.
Wie viele Argumente übergibst du?
Rufst du eventuell die Sub wie folgt auf?
xyz[color=CC0000]([/color]arg1[color=CC0000])[/color]Dies wäre dann Syntax 3 und dort steht:
ZitatSyntax 3
subOrFunction ( argPassed[color=CC0000]ByVal [/color] )Zitataus der Designer-Hilfe
When you [color=CC0000]omit[/color] the Call keyword, the following parenthesis rules apply:
For a sub or a function, do not use parentheses around the argument list (Syntax 2) unless you are passing a single argument by value to the sub or function (Syntax 3).Gruß
Dirk