10

私の質問は、タイトルにあるように、 ABAP オペレーターの=との違いは何ですか??=

4

4 に答える 4

13

?=ダウン)キャスト演算子です。これは参照変数間の割り当てに使用され、その割り当て可能性はランタイムの開始時にチェックされます。

ウィキペディアの一般的な説明を参照してください。

例:

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.
于 2009-08-03T04:06:58.603 に答える
0

参照変数間の代入はキャスト演算子(?=)ですが、具体的にはダウンキャスト演算子です。

于 2016-04-22T11:18:51.573 に答える