mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-07 02:54:18 +00:00
Bring back enum but using iota
This commit is contained in:
@@ -11,11 +11,27 @@ import {
|
||||
win32 "sys/windows.odin";
|
||||
}
|
||||
|
||||
proc main() {
|
||||
var x = if false {
|
||||
give 123;
|
||||
} else {
|
||||
give 321;
|
||||
};
|
||||
fmt.println(x);
|
||||
type Thing enum f64 {
|
||||
_, // Ignore first value
|
||||
A = 1<<(10*iota),
|
||||
B,
|
||||
C,
|
||||
D,
|
||||
}
|
||||
|
||||
proc main() {
|
||||
var ti = type_info(Thing);
|
||||
match type info : type_info_base(ti) {
|
||||
case Type_Info.Enum:
|
||||
for var i = 0; i < info.names.count; i++ {
|
||||
if i > 0 {
|
||||
fmt.print(", ");
|
||||
}
|
||||
fmt.print(info.names[i]);
|
||||
}
|
||||
fmt.println();
|
||||
}
|
||||
|
||||
fmt.println(Thing.A, Thing.B, Thing.C, Thing.D);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user