Let's PostScript(4) 関係オペレータで比較する
関係オペレータ
制御をおこなうためには、2つのObjectを比較評価する必要があるわけで、このような処理を行うオペレータを関係オペレータ(Relational Operator)といいます。 Post Scriptの比較評価結果はtrueとfalseのみです。
文法は object1 object2 xx となり、2つのObjectの関係を評価します。これは、表にしてしまったほうが分かりやすいかもしれません。
関係オペレータ | 処理内容 |
---|---|
eq | 2つのObjectが等しければOperandStackにtrueを格納する |
ne | 2つのObjectを等しくなければOperandStackにtrueを格納する |
ge | 2つのObjectの>=の大小比較を行い、結果をOperandStackに格納する |
gt | 2つのObjectの>の大小比較を行い、結果をOperandStackに格納する |
le | 2つのObjectの<=の大小比較を行い、結果をOperandStackに格納する |
lt | 2つのObjectの<の大小比較を行い、結果をOperandStackに格納する |
評価可能なオブジェクトは数値と文字列となります。 文字列は一般的なソートのルールが適用されるようです。また文字列はどのような表現方法で指定しても同じ文字列となれば正しく評価されるようです。
GS>(b) (abc) gt == true
GS>(abc) <616263> eq == true
本を見ると、eqオペレータとneオペレータは任意のObjectが比較できるようなのですが、配列でやってみたところ、うまくいきませんでした。 このあたりよくわからないので、後日の課題としたいと思います。
GS>[1 2 3] [1 2 3] eq == false
次回は、手続きオブジェクトと制御オペレータについてみていきたいと思います。