OOP-如何在内部合理地调用类方法
我有一个OOP-如何在内部合理地调用类方法,oop,methods,ocaml,reason,Oop,Methods,Ocaml,Reason,我有一个testFactory类。其目的是能够传入工厂,然后控制台输出结果以进行演示。现在,当尝试在测试方法中调用createProductA时,编译器将抱怨createProductA未绑定(未绑定值createProductA) 在类内部调用方法的正确语法是什么 class testFactory (factory: abstractFactory) => { as _; pub createProductA => factory#createProductA; pu
testFactory
类。其目的是能够传入工厂,然后控制台输出结果以进行演示。现在,当尝试在测试方法中调用createProductA
时,编译器将抱怨createProductA未绑定(未绑定值createProductA
)
在类内部调用方法的正确语法是什么
class testFactory (factory: abstractFactory) => {
as _;
pub createProductA => factory#createProductA;
pub createProductB => factory#createProductB;
pub test () => {
Js.log createProductA;
Js.log createProductB;
}
};
这是
作为u如果您曾经想知道这是为了什么,那么代码>类定义的一部分就会出现
createProductA
和createProductB
是方法,而不是函数,因此需要对对象调用它们。Reason/OCaml不会自动将当前对象绑定到像this
或self
这样的名称上,而是让您自己去做,这正是和一样所做的,\uu
通常的意思是“我不在乎这个”。因此,如果您将更改为代码>到例如作为自身的
您将能够在其他地方引用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;
}
};
我不知道我以前是否提到过这一点,但你可能想看看。你可以用它来解释OCaml代码。我确实读过那一章,而且我一直在重读(特别是在地铁上),并尝试使用u以及#。可能是在赶时间的时候,我忽略了一些事情。我一如既往地感谢你。