当前位置:  开发笔记 > 编程语言 > 正文

后记中的这个指令是什么意思?

如何解决《后记中的这个指令是什么意思?》经验,为你挑选了1个好方法。

我是这种语言的新手,但我不明白后记中的这个指令是什么意思.
我对波兰表示法非常熟悉,但这个指令对我来说仍然没有意义.

/doStartGroupFile where { pop doStartGroupFile } if

有人能帮我吗?
提前致谢.



1> KenS..:

它不太难." wherePostScript语言参考手册"第718页介绍了该运算符.它需要一个参数,即堆栈中的"键",并搜索字典堆栈中的所有当前字典(从最顶层或当前字典开始),以查找包含该键的字典.

如果它找到包含该键的字典,则会在操作数堆栈上推送对字典的引用,然后在操作数堆栈上推送一个布尔值"true".

如果它没有找到包含该键的字典,则会在操作数堆栈上推送一个布尔值"false".

因此/doStartGroupFile where寻找包含键'/ doStartGroupFile'的字典的存在

下一个元素(从'{'到'}')是一个可执行数组,所以我们将它捆绑起来并将其放在操作数堆栈上.

因此,取决于'where运算符,操作数堆栈将包含的结果:

{} true -dict-

要么:

{}假

接下来是if操作员,您可以在PLRM的第607页找到此定义.该if运营商消耗从操作数堆栈,过程和一个布尔两个操作数.

如果布尔值为true,则执行该过程,如果为false,则只丢弃它.

因此,如果找到'doStartGroupFile',我们执行该过程,如果不是,我们将其丢弃.假设在我们执行过程时发现操作数堆栈将只包含对我们找到doStartGroupFile的字典的引用.

该过程被声明为{pop doStartGroupFile},并且首先从操作数堆栈中删除top元素(因此它丢弃对字典的引用),然后解析doStartGroupFile.不知道doStartGroupFile是什么,但我猜它是在其他地方定义的可执行程序.

总而言之,代码片段搜索'doStartGroupFile'的定义,如果找到它执行它的话,否则它什么都不做.

简单:-)

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有