==的值不是运算符,而是内置过程。
PLRM第526页(pdf第540页)。
内置过程,这是否意味着这是一个PostScript过程:
{ something here }
或实际功能,例如在Java中你必须自己定义吗?
答案 0 :(得分:4)
您可以使用/== load ==
来查看ghostscript的实现。
或者获得Frank Meritt Braswell撰写的 Inside Postscript 一书。它有一整章关于==
程序如何在Adobe的打印机实现中运行。
但是简单的框架基于type
运算符的属性,它产生了一个类型名称。更具体地说,它产生一个可执行文件名,它指定参数的类型。因此,您可以轻松地使用字典实现类型开关。
<<
/integertype { } % handle integer case
/realtype { } % handle floating-point case
/arraytype { } % handle array case
>> begin
5 type exec
2.0 type exec
{a b c} type exec
不同的类型对象会导致执行不同的过程。
使用它,我们可以处理可能传递给过程的不同类型。
/my== {
<<
/integertype { =string cvs print }
/realtype { =string cvs print }
/arraytype { dup xcheck {
({ ) print {my==} forall (} ) print
}{
([ ) print {my==} forall (] ) print
} }
>> begin dup type exec
} def
=string
(在本书中描述)是=
和==
过程为此目的使用的预分配的128字节暂存缓冲区:将参数提供给{{ 1}}。
答案 1 :(得分:0)
这是一个程序。
我不会说Java,但在PostScript中如果是可执行文件,而不是操作符(语言的一部分),那么你必须自己定义它。
请注意,在PostScript中,也可以重新定义运算符,因为它具有运算符的名称,并不意味着 是运算符,它可能仍然是一个过程。 / p>