在 Lvl 2,3 中,您在字典堆栈上有这个:
systemdict | globaldict | userdict
在 Lvl 1 中,您拥有与产品相关的运营商的状态。据我了解,statusdict是一个字典,可以通过"systemdict"中的"statusdict"键访问。(如果我错了,请纠正我(。
通常,如果您进行名称查找,它首先在userdict中查找,然后在全局字典中查找,最后在systemdict中查找。
假设我在语言级别 2 或 3,我有 systemdict、globaldict 和 userdict。 为了兼容,我也有状态词典。如果您有状态字典,名称查找的顺序是什么?解释器是在系统字典之前还是在系统字典之后检查状态字典?(或另一点?
我记得(自从我看过级别 1 以来已经有很长时间了(,使用 statusdict 运算符的唯一方法是发出一个特定的"statusdict begin"来推动字典堆栈或类似的东西。
例如,Ghostscript 的状态字典实现了旧的 1 级"设置",如果你尝试:
612 792 0 setpage
然后,您将收到"未定义"错误。然而:
statusdict begin 612 792 0 setpage end
会工作。我在另一个 3 级解释器上尝试了类似的东西,结果相同。
所以我想说你不需要担心查找statusdict,任何想要使用其内容的代码都必须首先将其放在字典堆栈上,使用get或类似的方式来访问字典。