如何编写NOT include的源码

66次阅读
没有评论

共计 1378 个字符,预计需要花费 4 分钟才能阅读完成。

本篇内容主要讲解“如何编写 NOT include 的源码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“如何编写 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 的源码”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1378字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)