我有一个testFactory
课程。目的是能够传入工厂,然后控制输出结果以进行演示。截至目前,当尝试在测试方法中调用createProductA
时,编译器会抱怨createProductA未绑定(Unbound value createProductA
)。
在类内部调用方法的正确语法是什么?
class testFactory (factory: abstractFactory) => {
as _;
pub createProductA => factory#createProductA;
pub createProductB => factory#createProductB;
pub test () => {
Js.log createProductA;
Js.log createProductB;
}
};
答案 0 :(得分:3)
如果您曾经想过这是什么,那么这就是课程定义的as _;
部分所在。
createProductA
和createProductB
是方法,而不是函数,因此需要在对象上调用它们。 Reason / OCaml不会自动将当前对象绑定到this
或self
这样的名称,但会将其放在您身上,这正是as
所做的,并且_
像往常一样意味着"我并不关心这个"。因此,如果您将as _;
更改为例如as self;
您可以在其他地方引用self
作为当前对象。
试试这个:
class testFactory (factory: abstractFactory) => {
as self;
pub createProductA => factory#createProductA;
pub createProductB => factory#createProductB;
pub test () => {
Js.log self#createProductA;
Js.log self#createProductB;
}
};