在 Pike 中列出 class 的所有成员
List all members of a class in Pike
在 Pike 中,可以通过调用 indices()
来检索对象的所有成员。是否也可以在不实例化的情况下查看 class 的所有成员?
> class A {int foo; string bar;};
> A a = A();
> indices(a);
(1) Result: ({ /* 2 elements */
"foo",
"bar"
})
> indices(A);
(2) Result: ({ })
是的,你可以,虽然输出不会像 indices
那样友好。你需要使用 _describe_program
函数,像这样:
> _describe_program(A);
(4) Result: ({ /* 2 elements */
({ /* 7 elements */
0,
"foo",
int,
0,
0,
0,
0
}),
({ /* 7 elements */
0,
"bar",
string,
0,
16,
0,
0
})
})
在 Pike 中,可以通过调用 indices()
来检索对象的所有成员。是否也可以在不实例化的情况下查看 class 的所有成员?
> class A {int foo; string bar;};
> A a = A();
> indices(a);
(1) Result: ({ /* 2 elements */
"foo",
"bar"
})
> indices(A);
(2) Result: ({ })
是的,你可以,虽然输出不会像 indices
那样友好。你需要使用 _describe_program
函数,像这样:
> _describe_program(A);
(4) Result: ({ /* 2 elements */
({ /* 7 elements */
0,
"foo",
int,
0,
0,
0,
0
}),
({ /* 7 elements */
0,
"bar",
string,
0,
16,
0,
0
})
})