enum的tag问题

看到目前的枚举类型已经支持指定为数字了,比如

enum OpenFlag {  
  O_RDONLY = 0x00  
  O_WRONLY = 0x01  
  O_RDWR   = 0x02
}

此时,这个OpenFlag如何跟UInt互转?总不能还需要我们自己给这个OpenFlag实现一个方法来获取吧,如果这样,这就太蠢了

这个语法是为了支持绑定C FFI的,所以暂时没有在MoonBit中转换成UInt的方式。

如果只是想在MoonBit中定义枚举,推荐使用普通的enum + pattern match。如果你想在MoonBit中使用bit field,可以通过newtype包装一下uint,或者使用bit vector

1 个赞