1. 程式人生 > >abap 中 FIELD-SYMBOLS的使用方法

abap 中 FIELD-SYMBOLS的使用方法

欄位符號FIELD-SYMBOLS

欄位符號可以看作僅是已經被解引用的指標(類似於C語言中帶有解引用操作符 * 的指標),但更像是C++中的引用型別(int i ;&ii= i;),即某個變數的別名,它與真正的指標還是有很大的區別的,在ABAP中引用變數(通過TYPE REF TO定義的變數)才好比C語言中的指標

ASSIGN ... TO <fs>:將某個記憶體區域分配給欄位符號,這樣欄位符號就代表了該記憶體區域,即該記憶體區域別名

1.ASSIGN隱式強轉

TYPESBEGIN OF t_date,
  year(4TYPE  n,
  month(2TYPE

 n,
  day(2TYPE n,
END OF t_date.

FIELD-SYMBOLS <fs> TYPE t_date."<fs>定義成了具體限定型別
ASSIGN sy-datum TO <fs> CASTING. "後面沒有指定具體型別,所以使用定義時的型別進行隱式轉換

2.ASSIGN顯示強轉

DATA txt(8TYPE c VALUE '19980606'.
FIELD-SYMBOLS <fs>.
ASSIGNtxt TO <fs> CASTING TYPEd."由於定義時未指定具體的型別,所以這裡需要顯示強轉

3.ASSIGN 動態分配

4.UNASSIGN、CLEAR

UNASSIGN:該語句是初始化<FS>欄位符號,執行後欄位符號將不再引用記憶體區域,<fs> is assigned返回假

CLEAR:與UNASSIGN不同的是,只有一個作用就是初始化它所指向的記憶體區域,而不是解除分配