ABAP學習筆記 基礎語法 03 賦值

2021-10-09 15:01:48 字數 2152 閱讀 5475

願大家的學習,輕鬆且愉快。

如果大家覺得有用,希望**關注,謝謝

每天一點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...