溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ABAP方法的exporting類型參數(shù)什么

發(fā)布時間:2021-11-24 17:18:03 來源:億速云 閱讀:141 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)ABAP方法的exporting類型參數(shù)什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Subject: code review遺留問題: is it necessary to explicitly initialize the exporting parameter within implementation itself

像下圖里的exporting parameter需要在method 實(shí)現(xiàn)最開始時顯式CLEAR么?

ABAP方法的exporting類型參數(shù)什么

答案是it depends.

ABAP方法的exporting類型參數(shù)什么

pass by value checkbox默認(rèn)未選中,即pass by reference,此時實(shí)參的reference直接傳到method 實(shí)現(xiàn)里,修改method里的形參即直接修改了實(shí)參。

如果是pass by value,在runtime進(jìn)入method執(zhí)行時,abap runtime自動為輸入和輸出形參創(chuàng)建local object,然后把輸入實(shí)參的value copy到local object里,method里的計算都存儲在輸出形參的local object里,method執(zhí)行結(jié)束后再把local object的值copy到輸出實(shí)參。

在pass by reference的情況下,exporting參數(shù)在進(jìn)入函數(shù)內(nèi)時不會自動被初始化,而仍然為傳入時實(shí)參的值,因此需要developer 自己負(fù)責(zé)去初始化,否則可能會出現(xiàn)unexpepected的behavior。

什么時候用pass by reference,什么時候用pass by value?

Pass by reference性能更好,但需要developer自己在實(shí)現(xiàn)里初始化exporting parameter

如果期望輸出參數(shù)僅當(dāng)method 成功執(zhí)行之后才返回給caller,用pass by value

如果參數(shù)是一個很復(fù)雜的structure,比如nested table,或者按照abap help里面的建議值—超過100bytes后最好用pass by reference。

二者更詳細(xì)的區(qū)別參考abap help。

Extended check會自動把所有違反規(guī)則的code 列出來,比如CL_CRM_SOC_FND_ACCESS_IMPL 有17處:

ABAP方法的exporting類型參數(shù)什么ABAP方法的exporting類型參數(shù)什么

這些issue被categorize成programming guideline violation,不會算作ATC error。

上述就是小編為大家分享的ABAP方法的exporting類型參數(shù)什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI