Преобразование Nim Enum в целое число - PullRequest
1 голос
/ 30 июня 2019

Есть ли способ преобразовать Enum (или строку) в его значение int?

type
    CarBrands = enum
        Audi, BMW, Mercedes, Proton

convertsEnumToInt[CarBrands]("Audi") # returns 0
convertsEnumToInt[CarBrands]("Proton") # returns 3

1 Ответ

1 голос
/ 30 июня 2019

Согласно документации , вы можете использовать функцию ord.

type
  CompassDirections = enum
    cdNorth, cdEast, cdSouth, cdWest

for direction in ord(low(CompassDirections))..
                 ord(high(CompassDirections)):
  echo CompassDirections(direction), " ord: ", direction

var ordinal = low(int)
inc ordinal
dec ordinal
echo high(char)
...