日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

FIELD SYMBOL和TYPE REF TO的用法和比较

發布時間:2025/3/20 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FIELD SYMBOL和TYPE REF TO的用法和比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Type Ref To(以下簡稱:TRT)和?Field Symbol(以下簡稱:FS)在?ABAP?中都有著類似指針的作用;

下面結合對比和實例來介紹下兩者的用法和區別之處。

先預定義類型ty_ym,內表it_ym,工作區wa_ym,變量v_ym(char20)以供后面使用:

一、定義

Type Ref To?和?Field Symbol?的定義都可以指定特定的類型或者結構,或者不指定。


二、初始化

Type Ref To 有兩種初始化的方法:

第一種是用?CREATE DATA?動態開辟內存;

第二種是用?GET REFERENCE OF?指向已經存在的內存變量.

Field Symbol?的初始化,則只能指向已經存在的內存變量。


如果定義 ref 是指定特定的類型或者結構的,那么 CREATE DATA 時 TYPE 可以省略。

無論定義時 ref 是否有特定的類型或者結構,CREATE DATA 時必須指定特定的類型或者結構,不能是data這種泛型的。


在使用 Field Symbol 和 Type Ref To 前必須初始化,不然會發生 RUNTIME ERROR。

三、使用

如果第一步定義時指定了特定的類型或者結構,那么 Field Symbol 和 Type Ref To 都可以直接使用;

如果第一步定義時沒有指定類型或者結構,那么 Type Ref To 必須 ASSIGN 到另外一個 Field Symbol 里間接使用。

1) 指定特定的類型時:

1 2 ref ->* = 'abc'. <fs> =?'abc'.

2) 指定特定的結構時:

1 2 ref->*-col1 = 'abc'.? "簡寫是ref->col1 < fs >-col1 =?'abc'.

3) 不指定特定的類型或者結構時:


注意事項:

一般來說為了使用方便,還是應該指定 Field Symbol 或者 Type Ref To 的類型或者結構,以便之后直接使用。

在使用 Type Ref To 時,如果是 TYPE REF TO DATA,那么之后想使用這個 Type Ref To 時,依然會不可避免的用到 Field Symbol;

這樣代碼寫起來就很麻煩,還不如一開始就使用 Field Symbol 寫。

但像動態內表這種事先不知道結構的場合,那么只能使用 Type Ref To,再結合 Field Symbol;

如果直接使用 Field Symbol,那么 Field Symbol 將無法參考某個已經存在的結構進行初始化。

第一步假如 TYPE REF TO DATA,后面的第二步初始化時依然要指定特定的結構,所以還不如第一步就指定結構。

建議只有在事先不知道結構時,才使用泛型定義。

所以要么定義和初始化時都指定類型或者結構,要么就是動態內表或者結構都無法在事先指定;

像第一步 TYPE REF TO DATA 第二步 CREATE DATA ref TYPE ty_ym 不是好的做法。

?

4、區別

Type Ref To 和 Field Symbol 在用法上目前發現的主要區別:

1) Type Ref To 可以動態開辟內存,在動態內表時,可以等在程序運行時獲得結構后再開辟內存,并且賦值給某個 Field Symbol。

而光用 Field Symbol 是做不到的,因為 Field Symbol 的初始化需要“掛”在已知結構上。

2)Type Ref To 不像 Field Symbol 那樣有LOOP AT it_tab ASSIGNING < fs >的寫法,ref->*不是指向內表數據,

而是類似工作區指向某塊內存,所以更改數據后需要 modify 到內表,如果不需要數據了要clear。

而 Field Symbol 則不需要考慮 modify 和 clear。

3)IF < fs1 > = < fs2 > 是比較內存里的值,相對應的是IF ref1->* = ref2->*,而不能判斷比較 IF ref1 = ref2 。

總結

以上是生活随笔為你收集整理的FIELD SYMBOL和TYPE REF TO的用法和比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。