小编Ale*_*nik的帖子

理解 Crystal 中的枚举类型

我正在尝试基于 Robert Nystrom 的书,但在 Crystal 中实现著名的 Lox 语言。现在我偶然发现了以下缺陷/错误:

我有一个枚举OpCodes,类型为UInt8

enum OpCode : UInt8
  OP_RETURN = 1
end
Run Code Online (Sandbox Code Playgroud)

和一个 的UInt8数组

@code = Pointer(UInt8).malloc( 8 )
Run Code Online (Sandbox Code Playgroud)

但现在当我想分配时code[0] = OP_RETURN,即使进行所有可能的类型转换,我仍然收到以下错误消息:

Error: can't cast OpCode to UInt8
Run Code Online (Sandbox Code Playgroud)

但我认为 OpCode 是 UInt8 所声明的。

有任何想法吗?非常感谢。我刚刚开始学习 Crystal,但到目前为止,我对这种语言印象深刻,但也有一些需要帮助的地方。

crystal-lang

4
推荐指数
1
解决办法
145
查看次数

标签 统计

crystal-lang ×1