Перечислите всех членов класса в Пайк - PullRequest
0 голосов
/ 03 января 2019

В Pike можно получить все члены объекта, вызвав indices(). Можно ли также увидеть всех членов класса, не создавая его экземпляров?

> class A {int foo; string bar;};
> A a = A();
> indices(a);
(1) Result: ({ /* 2 elements */
                "foo",
                "bar"
            })
> indices(A);
(2) Result: ({ })

1 Ответ

0 голосов
/ 07 января 2019

Да, вы можете, хотя вывод будет не таким дружелюбным, как 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
            })
        })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...