Code: Alles auswählen.
LOOP AT baue_itab( ) ASSIGNING ...
ENDLOOP.
Code: Alles auswählen.
itab = baue_itab( ).
LOOP AT itab ASSIGNING ...
ENDLOOP.
Code: Alles auswählen.
REPORT.
DATA: counter TYPE i.
CLASS test DEFINITION.
PUBLIC SECTION.
TYPES: tt_data TYPE STANDARD TABLE OF t000 WITH NON-UNIQUE DEFAULT KEY.
class-METHODS: baue_itab RETURNING VALUE(rt_data) TYPE tt_data.
ENDCLASS.
CLASS test IMPLEMENTATION.
METHOD baue_itab.
counter += 1.
DO counter TIMES.
APPEND INITIAL LINE TO rt_data.
ENDDO.
ENDMETHOD.
ENDCLASS.
END-OF-SELECTION.
LOOP AT test=>baue_itab( ) ASSIGNING FIELD-SYMBOL(<ls_data>).
WRITE sy-tabix.
ENDLOOP.
Wirst du also zukünftig die erste Version des Codings verwenden und "über die Methode loopen" oder eher das zweite Codingbeispiel verwenden, welches ja im Prinzip das gleich macht, nur das die Kopie der itab nachdem Loop noch als expliziete Kopie per Variable zur Verfügung steht?ralf.wenzel hat geschrieben: ↑02.02.2022 20:20Ich wollte nur sichergehen, dass meine Vermutung richtig ist.
Das LOOP AT Methodenrückgabe hat aber nichts mit OO tun sondern mit der „funktionalen Schreibweise“ von Methoden. Funktionen gibt es schon viel länger als Objektorientierung und eine Schleife über Rückgabewerte einer solchen auch. Es ist in ABAP nur so, dass quasi erst mit Einführung von OO die Schreibweise und somit auch der Loop At Returningparameter möglich wurde.
Angenommen der Schleifeninhalt sei nicht trivial. Beim Debuggen könnte möglicherweise Kenntnis über die Basis der Schleife hilfreich sein. Wäre das ein Grund für dich der Hilfsvariablen einen Zweck zuzugestehen? (Ich selber würde Loop at Returningparameter verwenden. Debugging verhätschelt den Programmierer, mir gefällt die Schreibweise und ich bin halt nicht nett )ralf.wenzel hat geschrieben: ↑08.02.2022 14:46Über die Methode loopen. Ich vermeide gern "Hilfsvariablen", die keinen wirklichen Zweck haben.
Und wie genau ginge das? Unter den Locals gibt es nichts, hat ja auch keine zugewiesene Referenz...ralf.wenzel hat geschrieben: ↑09.02.2022 08:42...
Außerdem kann man sich den Inhalt der itab ja auch im Debugger ansehen.
...
Ralf