如何测试 Qore 对象是否继承自特定 class

How to test if Qore object is inherited from a specific class

当我有更多 class 时,如何测试实例是否派生自 class?

class a {
};
class b inherits a {
};
class c inherits b {
};


a B = new b();
a C = new c();
assert ((B is instance_of b) == (C is instance_of b))

Ugly hack 正在测试 B.className == 'b' 但是 'C'[=18= 是错误的].我找不到接线员。

使用 instanceof 运算符:

class A {
}
class B inherits A {
}
class C inherits B {
}

A a();
B b();
C c();

printf("%y %y %y\n", a instanceof B, b instanceof B, c instanceof C);

打印:False True True

(以上代码基于您的代码,但遵循 Qore 的标准 naming conventions 并且还纠正了语法错误)