ENUM
- C
- C++
- C#
- Java
- Rust
- Go
- Javascript
- Typescript
- Python
// ------------------------------------
// Definition
// ------------------------------------
enum myEnum {const1, const2, ..., constN};
// By default, const1 is 0, const2 is 1 and so on.
// Example
// You can change default values of enum elements during definition (if necessary).
enum ERROR_CODES {
NO_FILE = 314,
NO_MOUSE = 675,
NO_PC = 999
}; // Dont forget the ; (semicolon)
// ------------------------------------
// Assignment
// ------------------------------------
enum myEnum my_variable = ENUM_CONSTANT; // Either use "enum myEnum" or a type alias
int any_variable = ENUM_CONSTANT; // direct access
// ATTENTION
// In C, enum constants are NOT scoped to the flag (enum name). Use unique names.
// Example
enum day {DAY_SUNDAY, DAY_MONDAY, DAY_TUESDAY, DAY_WEDNESDAY, DAY_THURSDAY, DAY_FRIDAY, DAY_SATURDAY};
enum day d = DAY_THURSDAY;
More Info:
// Prefer
// enum class (also called a scoped enumeration).
// Since C++11
// ------------------------------------
// Definition
// ------------------------------------
enum class MyEnum {const1, const2, ..., constN};
// By default, const1 is 0, const2 is 1 and so on.
// You can change default values of enum elements during definition (if necessary).
enum class ERROR_CODES {
NO_FILE = 314,
NO_MOUSE = 675,
NO_PC = 999
}; // Dont forget the ; (semicolon)
// ------------------------------------
// Assignment
// ------------------------------------
MyEnum variable = MyEnum::const1;
MyEnum variable {MyEnum::const1}; // Uniform Initialization (Also known as Brace Initialization or List Initialization) (since C++11)
// Other Example
enum class Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY};
Day day{Day::THURSDAY};
//Legacy Enum
// ------------------------------------
// Definition
// ------------------------------------
enum myEnum {const1, const2, ..., constN}; // Without class keyword
// ------------------------------------
// Assignment
// ------------------------------------
enum myEnum my_variable = ENUM_CONSTANT;
int any_variable = ENUM_CONSTANT; // direct access
// ATTENTION
// Enum constants created this way are NOT scoped to the flag (enum name). Use Modern Enum Class.
// Example
enum day {DAY_SUNDAY, DAY_MONDAY, DAY_TUESDAY, DAY_WEDNESDAY, DAY_THURSDAY, DAY_FRIDAY, DAY_SATURDAY};
enum day d = DAY_THURSDAY;
More Info:
enum Color
{
Red,
Green,
Blue
}
enum FileAccess
{
Read = 1,
Write = 2,
Execute = 4
}
Color color = Color.Red;
int value = (int)Color.Red;
Color parsed = Enum.Parse<Color>("Red");
enum Color {
RED,
GREEN,
BLUE
}
enum HttpStatus {
OK(200),
NOT_FOUND(404);
private final int code;
HttpStatus(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
Color color = Color.RED;
String name = color.name();
enum Color {
Red,
Green,
Blue,
}
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
}
let color = Color::Red;
match color {
Color::Red => println!("red"),
Color::Green => println!("green"),
Color::Blue => println!("blue"),
}
// Go has no enum keyword.
// Use constants with iota.
type Color int
const (
Red Color = iota
Green
Blue
)
color := Red
// No Native Enum Support.
// Use frozen objects or TypeScript enums when static typing is needed.
const Color = Object.freeze({
Red: "red",
Green: "green",
Blue: "blue",
});
const color = Color.Red;
enum Color {
Red,
Green,
Blue,
}
enum HttpStatus {
Ok = 200,
NotFound = 404,
}
const color: Color = Color.Red;
// String enum
enum Direction {
Up = "UP",
Down = "DOWN",
}
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
color = Color.RED
name = color.name
value = color.value