class - 如何在 OCAML 类中声明记录

标签 class object class-design ocaml

我想在一个类中声明一条记录,如下所示:

class player (x, y)=
     object(self)
     type gun = {x:int; y:int; active:bool}
     val guns = Array.create 5 {x=0; y=0; active=false}
....

但编译器声称这一行是语法错误:type gun = {x:in ....

当像这样在类外声明时
type :  gun = {x:int; y:int; active:bool}
class player (x, y)=
     object(self)
     val guns = Array.create 5 {x=0; y=0; active=false}
....

错误是:unbound value gun。

所以有人知道如何用另一种方式达到相同的功能吗?
谢谢你!

********* 解决了***

奇怪的是,当类型在外部声明时它正在工作,谢谢

最佳答案

为什么不在类定义之外定义类型 gun ?

关于class - 如何在 OCAML 类中声明记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/622838/

相关文章:

class - yii2详细 View 条件行类

CSS - 完全相同的类但背景颜色不同,搞砸了

c++ - 如何从成员函数返回对新对象实例的引用(在某些操作之后)?

javascript - 无法从对象获取值

java - 像这样使用继承是正确的吗?

Python:在return语句后自动删除类对象

javascript - 获取数据并在 javascript 对象上进行更改

c++ - 重载运算符 () vs 成员函数 get()

class-design - 一个类应该有多少个构造函数?

C# generics - 我可以让 T 成为两个选择之一吗?