您好,登錄后才能下訂單哦!
本篇內容主要講解“如何編寫NOT include的源碼”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何編寫NOT include的源碼”吧!
(1) 從評論區能看出,很多朋友都找到了謎題的突破口,即 NOT=>NOT( NOT ). 這是典型的ABAP類靜態方法調用的語法,因此說明,在名為NOT的INCLUDE里,包含了一個名為NOT的ABAP類,有一個名為NOT的靜態方法。同時,這個靜態方法調用的前面出現了OR這個布爾邏輯運算符,只能有一種情況才能通過語法檢查,就是NOT靜態方法的輸出參數為RETURNING類型,然后該輸出參數作為OR的操作數。
值得一提的是,很多其他編程語言都禁止使用關鍵字保留字來命名標識符或者類,而ABAP卻沒有這個限制,顯得有點特立獨行。
(2) 也有朋友在評論區提到,代碼可執行部分以IF開頭,但是卻沒有以ENDIF結尾。唯一的解釋,就是在NOT這個include里,聲明了包含ENDIF語句的宏,并把宏的名稱取名為NOT.
(3) ABAP里感嘆號的用法。
ABAP幫助文檔里說的很清楚,!作為ABAP里的轉義字符,能夠告訴ABAP編譯器,!后面緊跟的并不是關鍵字,而是普通的ABAP標識符。
給出的例子也很清晰,如果有人非要用CHANGING和USING作為形式參數的名稱,只需要在前面加上感嘆號即可。
而如果感嘆號后面跟的并不是真的ABAP關鍵字,而是普通的標識符,那又會如何呢?
答案是,此時感嘆號會直接被忽略。看下面的例子,加上感嘆號的效果和不加一致。
(4) 現在我們已經知道了,題目中的!NOT,暗示大家在NOT include里,還定義了一個名為NOT的變量。
首先我們把謎題里迷惑人眼球的障眼法全部拿掉。
在有NOT參與的ABAP邏輯判斷語句里,出現偶數個NOT,相當于一個NOT也未出現過(類似負負得正的原理),出現奇數個NOT,只相當于出現一個NOT.
所以題目中那多余的一系列NOT,就像《笑傲江湖》中衡山掌門莫大先生那套“衡山百變千幻云霧十三式”中的虛招一樣,能讓不明就里的對手眼花繚亂。
人稱“琴中藏劍,劍發琴音”的莫大,憑借這手如夢如幻的劍法,在衡山城外擊殺了嵩山十三太保之一的“大嵩陽手”費彬。即使武功強如費彬,也沒弄看透莫大劍法中的虛招。而親愛的ABAP顧問們,這道謎團中重復的NOT虛招,大家看透了沒?
仔細觀察代碼中所有出現!NOT的地方,按照上述法則去除掉多余的NOT之后,能夠提取出兩個規律:
a. !NOT 前面至少有一個IF,OR或者AND
b. !NOT 后面直接結束,并未出現 IS INITIAL或者 > XXX, <> XXX等判斷語句。
什么樣的ABAP變量類型允許這種操作呢?
整型不行:
字符串類型不行:
而SELECTION-OPTIONS就可以。
這個SELECTION-OPTIONS是ABAP古董級的功能了,在SAPGUI下做Dynpro開發的顧問們會經常用,而SAP Cloud Platform ABAP編程環境下已經不再支持了。
上述四個語法點逐一突破后,如何編寫NOT include的源碼,思路也就清晰了。
源代碼如下:
到此,相信大家對“如何編寫NOT include的源碼”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。