abap 中 FIELD-SYMBOLS的使用方法
阿新 • • 發佈:2019-01-03
欄位符號FIELD-SYMBOLS
欄位符號可以看作僅是已經被解引用的指標(類似於C語言中帶有解引用操作符 * 的指標),但更像是C++中的引用型別(int i ;&ii= i;),即某個變數的別名,它與真正的指標還是有很大的區別的,在ABAP中引用變數(通過TYPE REF TO定義的變數)才好比C語言中的指標
ASSIGN ... TO <fs>:將某個記憶體區域分配給欄位符號,這樣欄位符號就代表了該記憶體區域,即該記憶體區域別名
1.ASSIGN隱式強轉
TYPES: BEGIN OF t_date,
year(4) TYPE n,
month(2) TYPE
day(2) TYPE n,
END OF t_date.
FIELD-SYMBOLS <fs> TYPE t_date."將<fs>定義成了具體限定型別
ASSIGN sy-datum TO <fs> CASTING. "後面沒有指定具體型別,所以使用定義時的型別進行隱式轉換
2.ASSIGN顯示強轉
DATA txt(8) TYPE c VALUE '19980606'.
FIELD-SYMBOLS <fs>.
ASSIGNtxt TO <fs> CASTING TYPEd."由於定義時未指定具體的型別,所以這裡需要顯示強轉
3.ASSIGN 動態分配
4.UNASSIGN、CLEAR
UNASSIGN:該語句是初始化<FS>欄位符號,執行後欄位符號將不再引用記憶體區域,<fs> is assigned返回假
CLEAR:與UNASSIGN不同的是,只有一個作用就是初始化它所指向的記憶體區域,而不是解除分配