enums - 将 Nim 枚举转换为整数
问题描述
有没有办法将枚举(或字符串)转换为其 int 值?
type
CarBrands = enum
Audi, BMW, Mercedes, Proton
convertsEnumToInt[CarBrands]("Audi") # returns 0
convertsEnumToInt[CarBrands]("Proton") # returns 3
解决方案
根据文档,您可以使用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)
推荐阅读
- javascript - 刷新数组对象时出错
- c# - 使用 itextsharp 检查添加元素是否会创建新页面
- java - 房间没有自动创建 json 模式文件
- regex - 正则表达式匹配 2 个不同的可能输入
- ios - 如何在目标 c 项目中使用目标 c 库和 swift 框架?
- xamarin.forms - Xamarin.Forms Android/iOS HttpClient.Timeout 不受尊重
- java - 将数据推送到堆栈上正在将内部的所有数据更改为最后推送的数据
- java - 如何在基于 Web 的实时应用程序中使用多线程,我能得到一些场景吗
- google-cloud-dataproc - 我可以通过正则表达式过滤 gcloud dataproc 集群列表吗?
- javascript - Webpack如何编译文件夹中的所有js文件并将它们移动到另一个