zscript-doc/language/Enumerations.md

1.2 KiB

Enumeration Definitions

An enumeration is a list of named numbers, which by default will be incremental from 0. By default they decay to the type int, but the default decay type can be set manually.

An enumeration definition takes the form:

enum Identifier $[ : Integer-type]$
{
	$[Enumerator $[ , Enumerator]$... $[ , ]$]$
}

Optionally followed by a semicolon. Integer-type in this context is any valid integral type name.

Enumerators can either be incremental (from the last enumerator or 0 if there is none) or explicitly set with the syntax Identifier = Expression. Enumerators must be followed by a comma unless it is the end of the list.

Enumerator syntax is:

Identifier $[ = Expression]$

Example: Enumeration definitions

// Basic enumeration.
enum MyCoolEnum
{
	A_THING, // Has value int(0) ...
	BEES, // ... 1 ...
	CALCIUM, // ... 2 ...
	DEXTROSE, // ... and 3.
}

// Less trivial example.
enum MyCoolerEnum : int16
{
	A = 500, // Has value int16(500),
	B, // 501,
	C = 200,
	D, // 201,
	E, // and 202.
}