Enumerations: Difference between revisions
Content added Content deleted
(Added Wren) |
(Made the program possible to compile, changed the description of {.pure.} pragma, added vertical presentation, etc.) |
||
Line 1,079: | Line 1,079: | ||
=={{header|Nim}}== |
=={{header|Nim}}== |
||
<lang nim> |
<lang nim># Simple declaration. |
||
type Fruits1 = enum aApple, aBanana, aCherry |
|||
# Specifying values (accessible using "ord"). |
|||
⚫ | |||
type Fruits2 = enum bApple = 0, bBanana = 2, bCherry = 5 |
|||
# Enumerations with a scope which prevent name conflict. |
|||
type |
type Fruits3 {.pure.} = enum Apple, Banana, Cherry |
||
var i: int = Apple # error for scoped enum |
|||
⚫ | |||
var x = Fruits3.Apple # Need to qualify as there are several possible "Apple". |
|||
# Using vertical presentation and specifying string representation. |
|||
type Fruits = enum Apple = "Apple", Banana = "Banana", Cherry = "Cherry" # with string literals</lang> |
|||
type Fruits5 = enum |
|||
cApple = "Apple" |
|||
cBanana = "Banana" |
|||
cCherry = "Cherry" |
|||
echo cApple # Will display "Apple". |
|||
# Specifying values and/or string representation. |
|||
type Fruits6 = enum |
|||
Apple = (1, "apple") |
|||
Banana = 3 # implicit name is "Banana". |
|||
Cherry = "cherry" # implicit value is 4.</lang> |
|||
=={{header|Objeck}}== |
=={{header|Objeck}}== |