Ternärer Operator (Alternativen)

8

Gibt es in der ABAP-Syntax einen ternären oder bedingten Operator? Ich habe keins gefunden, nehme also an, dass die Antwort nein ist, aber gibt es dann eine Alternative, die ich verwenden kann, um die üblichen "dummen" IF -Anweisungen zu klären, die ich routinemäßig verwende?

Betrachten Sie zum Beispiel eine Methode, die eine Nachricht mit optionalen Nachrichtenparametern protokolliert. Um zu entscheiden, ob der importierte Parameter oder der Standardwert verwendet werden soll, muss der Wert wie folgt überprüft werden:

%Vor%

Ein ternärer Operator würde jede dieser fünfzeiligen Anweisungen auf eine einzelne Zeile reduzieren, wie im folgenden Codeblock zu sehen ist. Es könnte sogar die Verwendung einer temporären Variablen unnötig machen, wenn der Bediener in-line verwendet wird.

%Vor%

Gibt es eine Möglichkeit, diese Art von Programmierstil in ABAP zu approximieren oder bin ich mit dem Durcheinander fest?

    
Lilienthal 20.06.2014, 15:04
quelle

3 Antworten

19

Release 7.40 bringt eine ganze Reihe von ABAP-Verbesserungen, die ich haufenweise interessant finde. Die ternäre Stildeklaration (zumindest etwas, das ihr ähnelt) ist eine davon.

Syntax:

%Vor%

Beispielhafte Datendeklaration einer Variablen namens 'bool' und eine bedingte Wertzuweisung in einer Zeile. Old skool ABAP das dauert etwa 10 Zeilen.

%Vor%

Weitere Informationen: Ссылка

    
Jorg 20.06.2014, 23:21
quelle
2

Nein, in ABAP gibt es keinen Operator, der dem aus anderen Sprachen bekannten Konstrukt a ? b : c ähnlich ist. In Ihrem konkreten Beispiel könnten Sie jedoch Standardwerte für Ihre Methodenparameter iv_class usw. in der Signatur der Methode deklarieren.

    
rplantiko 20.06.2014 15:27
quelle
1

Während Sie die Variablen deklarieren, können Sie den Standardwert festlegen oder explizit wie unten beschrieben vorgehen.

%Vor%     
Jishnu Janardhanan 28.07.2014 20:48
quelle

Tags und Links