[SAP ABAP開發技術總結]字段符號FIELD-SYMBOLS


 

一說到字段符號FIELD-SYMBOLS,就要與C/C++中的指針扯在一起了,使用時無需值的拷貝,直接指向並操作某個內存區,程序效率是大大的提高,所以字段符號是每個ABAP顧問都必須掌握的知識,可以這么說吧,如果你不懂ABAP字段符號FIELD-SYMBOLS,就像不懂C/C++的指針一樣,程序是可以編,但你無法寫出高效靈活的程序,所以,做為一名真正ABAP技術顧問,你必須要懂。這里只是簡單列了一下知識點,關於這方面的詳細以后貼吧

1.11.     字段符號FIELD-SYMBOLS

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

ASSIGN ... TO <fs>:將某個內存區域分配給字段符號,這樣字段符號就代表了該內存區域,即該內存區域別名

1.11.1.           ASSIGN隱式強轉

TYPES: BEGIN OF t_date,
  year(
4) TYPE
  n,
  month(
2) TYPE
n,
  day(
2) TYPE
n,
END OF
t_date.

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

1.11.2.           ASSIGN顯示強轉

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

1.11.3.           ASSIGN 動態分配

請參考動態語句à ASSIGN 動態分配

1.11.4.           UNASSIGNCLEAR

UNASSIGN:該語句是初始化<FS>字段符號,執行后字段符號將不再引用內存區域,<fs> is assigned返回假

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM