Из чего значение? = в операторах ABAP?

import os.path

if os.path.isfile(filepath):
8
задан Jagger 26 July 2014 в 12:27
поделиться

1 ответ

? = - это оператор преобразования (вниз) . Он используется для присваивания между ссылочными переменными, чья возможность присваивания проверяется уже при запуске среды выполнения.

См. Общее объяснение в wikipedia .

Пример:

DATA fruit TYPE REF TO zcl_fruit.
DATA apple TYPE REF TO zcl_apple. " inherits from zcl_fruit
DATA apricot TYPE REF TO zcl_apricot. " inherits from zcl_fruit

...

case fruit->type.
  when 'apple'.
    apple ?= fruit.
    seeds = apple->seeds.
  when 'apricot'.
    apricot ?= fruit.
    seeds = VALUE #( ( apricot->kernel ) ).
endcase.

Начиная с 7.40, оператор конструктора ] CAST может использоваться:

DATA fruit TYPE REF TO zcl_fruit.

...

case fruit->type.
  when 'apple'.
    seeds = CAST zcl_apple( fruit )->seeds.
  when 'apricot'.
    seeds = VALUE #( ( CAST zcl_apricot( fruit )->kernel ) ).
endcase.
12
ответ дан 5 December 2019 в 19:02
поделиться