Perfect Developer basic tutorial 2 | This page last modified 2011-10-29 (JAC) |
Color
whose instances are
named red, yellow, orange, green, blue, black, white.
You declare such a class in Perfect like this:
class Color ^= enum red, yellow,
orange, green, blue, black, white end
Because the instances are declared as member constants of the class, you need to give the class name when referring to them, using the syntax name@class as in the following example:
var colorOfCar: Color; ...
colorOfCar! = red@Color;
Whenever you declare an enumeration class, the predecessor and successor
unary operators <
and >
, the sequence
construction operator ..
and the function toString
are automatically defined for you.
The predecessor and successor operators yield the previous and next values in
the list of instance names respectively.
For example,
<yellow@Color
yields red@Color,
while
<red@Color
is illegal
because red
is the lowest
value of type Color
and
therefore has no predecessor.
The usual comparison operators (including the rank operator
~~
) are also defined
automatically for you. Values in the enum list compare higher than
earlier values in the list and lower than later values.
For example,
red@Color < black@Color
yields true
.
Enumeration classes also support the type operators
highest
and
lowest
. Using the
above example, the expression
lowest Color
yields
red@Color,
while
highest Color
has
the value white@Color.
Enumerations are implicitly final classes, so it is not possible for other classes to inherit from them.
Knowledge round-up quiz
Next: Expressions
Save My Place | Glossary | Language Reference Manual |
Copyright © 1997-2012 Escher Technologies Limited. All rights reserved. Information is subject to change without notice. |