願大家的學習,輕鬆且愉快。
如果大家覺得有用,希望**關注,謝謝
每天一點abap知識。
本篇我們簡單分享一下abap中賦值的語法內容。
核心語法包括:「move to」,「write to」,「move-corresponding to 」 以及field-symbols。
正文1. move to 和 write to
move f1 to f2
是將變數f1的值賦給變數f2;
write f1 to f2
是將變數f1的值賦給變數f2;
注意1:這裡的write 不是輸出,而是賦值。
注意2:兩者的區別,move to只是將變數中的值賦給目標變數,格式依舊保持目標變數的格式;而wirte to 是會將變數的型別一起賦給目標變數,這樣目標變數的格式將會被強制轉換(關於型別之間的型別強制轉換規則,以後再聊哈)。
如下圖**執行結果所示,很明顯,write to的所賦的值均帶有原值的型別;
注意3:除了move to 和 write to這兩種賦值方式,別忘了最常用的以「=」賦值的方式,且已「=」賦值時,也不會帶格式,參考上圖。
2. 帶有偏移量的賦值
帶有偏移量的賦值,實際上就是我們需要將某個變數中的一部分,賦值給目標變數中的一部分。
比如:move f1+3(2) to f2+4(2)
當然 write to 和 =的賦值方式,也符合這種帶偏移量的賦值方式。這裡就不贅述了。
3. 結構變數的賦值
結構體變數之間的賦值,一般使用 move-corresponding to。
語法結構: move-corresponding string1 to string2。
賦值的規則是,只會對不同結構體中的相同字段,進行賦值。
舉例:存在 string1, string2,string3,三個變數,其中三個變數包含的字段為:
string1包含字段:name1 name2;
string2包含字段:name3 name4;
string3包含字段:name1 name3。
如果使用 move-corresponding to 將string1賦給string3,將只有name1中的值被賦給了string3;
如果使用 move-corresponding to 將string2賦給string3,將只有name3中的值被賦給了string3;
注意:**中在第二次賦值中,ls_s3-name1沒有被賦值,且保持了第一次被賦值成功的值。
4.帶指標的賦值
field-symbols
type any.
assign
變數to .
這種方式是我們通過field-symbols定義了乙個指標物件,也可以理解為存放變數位址的物件,我們可以通過assign變數位址的方式,給其賦值。
舉例說明:
首先,我們定義乙個變數lv_a1,且賦初始值為「abc」;
再用「field-symbol」定義乙個指標;
我們用「
assign
to」將變數
lv_a1
的位址賦給指標
,這個時候我們輸出
時,的輸出結果將是
lv_a1
的初始值「
abc」;
此時,如果我們給將中的位址,賦新的值「123」,那麼,此時輸出將顯示「123」,而且輸出原變數lv_a1時,原變數的值將從初始值「abc」,變成新值「123」。
如下圖所示:
注意:關於
field-symbols
在實際使用有很多技術細節,這裡只是簡述原理。
ABAP 基礎語法
表的宣告的格式為 tables 表名 變數定義 其中 v1是變數名。l 是變數的長度,t是資料型別,d是小數字,是預設值。data v1 l type t decimals d value 定義了乙個10位長度3位小數預設值為1.12數字變數。data num 10 type p decimals ...
ABAP學習筆記 基礎語法 01 資料型別的定義
願大家的學習,輕鬆且愉快。如果大家覺得有用,希望 關注,謝謝 對於abap語法的理解是非常有利於業務顧問的日常工作的。後面,我會結合我以前的學習筆記,和系統的語法測試,分享一些常見 常用的語法知識。希望對大家有用。什麼是資料型別?簡單理解 企業資訊系統,本質上就是將企業的各種資訊,變成軟體可處理的資...
ABAP學習筆記
assign利用offset語句靜態賦值,語法 assign gv name off len to 中間紅色的len必須為大於0的正整數或者 且off len的值必須小於變數gv name值的長度。如 assign gv name 6 to error assign動態分配表字段,語法 assing...