Domino 9 und frühere Versionen > Entwicklung

doc.Responses kann nothing retunieren?

<< < (2/5) > >>

TMC:

--- Zitat von: Marinero Atlántico am 16.02.05 - 20:51:24 ---if ((false) && (x.val ==4))
--- Ende Zitat ---

Kann sein dass ich mich jetzt komplett irre.

Aber in LS müssze doch sowohl FALSE erfüllt sein UND ZUGLEICH müsste val=4 sein, damit die If-Bedingung ausgeführt wird.
Wenn False schon reicht, muss man doch verschachteln, oder?

If (false) Then
   If (x.val = 4) Then

Zumindest hab ich das so immer gemacht, weil ich es auch nicht 100% wusste.
Gute Frage.
Matthias

Semeaphoros:
Also, Andreas, das tut er sicher nicht, es gibt noch eine "Precedence of operators", und die findet man in der Hilfe. Was ich dort aber nicht gefunden habe, ist die Angabe Bernhards, dass LS eine unvollständige Evaluation durchführt (was ungewöhnlich wäre und Seiteneffekte produziert, wenn einer der Operanden nicht ein einfacher Wert, sondern zum Bleistift ein Funktionsaufruf darstellt) oder eine vollständige. Und ja, Andreas hat Recht, eine unvollständige Evaluation ist nur bei AND möglich und bedingt damit einen "highly optimising precompiler", den es bei interpretiertem Basic oder p-Code Basic normalerweise nicht gibt (weil zu komplex).

koehlerbv:

--- Zitat von: Glombi am 16.02.05 - 21:00:17 ---Das heisst, der Interpretor geht von links nach rechts und wertet erstmal jede Condition aus? Bei False wird dann abgebrochen? Das wäre aber nur bei AND sinnvoll.

Andreas

--- Ende Zitat ---

Jo, das funktioniert - wie geschrieben - natürlich nur mit AND. Trotzdem prüfe ich in der Regel verschachtelt, da man ja nicht immer die Wahrscheinlichkeit der erwarteten Abbruchbedingung voraussehen kann. Abgesehen davon ist das sauberer und lesbarer (wenn auch mit dem Handicap der Verschachtelungen ...).

Bernhard

Bernhard

Marinero Atlántico:

--- Zitat von: Semeaphoros am 16.02.05 - 21:10:06 ---wenn einer der Operanden nicht ein einfacher Wert, sondern zum Bleistift ein Funktionsaufruf darstellt

--- Ende Zitat ---
Wenn der erste Operand false ist, dann müsste der Funktionsaufruf nicht mehr aufgerufen werden.
Es sei denn, er verändert Variablen, Objekte, die von der aufrufenden Funktion und der aufgerufenen Funktion gemeinsam benutzt werden. Das wären dann globale Variablen.
Ich würde das als schlechten Programmierstil ansehen. Eine Funktion sollte einen Rückgabewert liefern.

koehlerbv:

--- Zitat von: Marinero Atlántico am 16.02.05 - 21:20:34 ---Ich würde das als schlechten Programmierstil ansehen. Eine Funktion sollte einen Rückgabewert liefern.

--- Ende Zitat ---

Das wäre auch aus meiner Sicht katastrophaler Programmierstil. Und tut nicht noooot.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln