首页 > 解决方案 > 将 Nim 枚举转换为整数

问题描述

有没有办法将枚举(或字符串)转换为其 int 值?

type
    CarBrands = enum
        Audi, BMW, Mercedes, Proton

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

标签: enumsenumerationnim-lang

解决方案


根据文档,您可以使用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)

推荐阅读