Domino 9 und frühere Versionen > ND8: Entwicklung

Default Werte bei Übergabe an eine Methode

(1/1)

Fragensteller:
In sämlichen Sprachen ist es ja möglich parameter an eine Methode zu übergeben. Ist diese nicht gesetzt können default werte gesetzt werden.
Bei VBA war es so...


--- Code: ---Function FF(A As Long, Optional B As Long = 2) As Variant
    If B = 0 Then
        FF = CVErr(xlErrDiv0)
    Else
        FF = A / B
    End If
End Function

--- Ende Code ---

Wie funktioniert das ganze bei Lotus Script?
Konnte dazu noch nichts finden.

Schon mal Danke.

koehlerbv:
Eine Schwäche von LotusScript: Optional gibt es nicht.

Peter Klett:
Wenn ich solch eine Variabilität benötige, definiere ich für den "optionalen" Parameter einen Wert, der dann intern in der Routine mit dem Defaultwert übersetzt wird (z.B. wenn leer, dann Default). Der Parameter muss natürlich übergeben werden (bei erwarteten positiven Zahlen könnte ich einen negativen Wert dazu nutzen, um den Defaultwert anzusprechen).

Wenn es ganz flexibel sein soll, nehme ich nur einen Parameter (Variant) und übergebe eine Liste. Innerhalb der Routine kann ich dann das Vorhandensein von Parametern überprüfen.

z.B.

Dim liste List As String
liste ("Ort") = "Oslo"
liste ("Strasse") = "Karl Johans gate"
liste ("Hausnummer") = "1"

Call MeineFunktion (liste)

...

Sub MeineFunktion (liste As Variant)
   If Iselement (liste ("Ort")) Then
      -> Ort verwenden
   Else
      -> Defaultwert für Ort
...
 

Fragensteller:

--- Zitat von: Peter Klett am 28.11.11 - 13:16:09 ---Wenn ich solch eine Variabilität benötige, definiere ich für den "optionalen" Parameter einen Wert, der dann intern in der Routine mit dem Defaultwert übersetzt wird (z.B. wenn leer, dann Default). Der Parameter muss natürlich übergeben werden (bei erwarteten positiven Zahlen könnte ich einen negativen Wert dazu nutzen, um den Defaultwert anzusprechen).

Wenn es ganz flexibel sein soll, nehme ich nur einen Parameter (Variant) und übergebe eine Liste. Innerhalb der Routine kann ich dann das Vorhandensein von Parametern überprüfen.

z.B.

Dim liste List As String
liste ("Ort") = "Oslo"
liste ("Strasse") = "Karl Johans gate"
liste ("Hausnummer") = "1"

Call MeineFunktion (liste)

...

Sub MeineFunktion (liste As Variant)
   If Iselement (liste ("Ort")) Then
      -> Ort verwenden
   Else
      -> Defaultwert für Ort
...
 

--- Ende Zitat ---

Das ne gute Idee...
Leere Parameter wolle ich vermeiden.

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln