我正在尝试基于 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 ×1