在沒有繼承成員的情況下迭代結構類的成員
module main;
auto getMemberNames(T)() @safe pure {
string[] members;
foreach (derived; __traits(derivedMembers, T)) {
members ~= derived;
}
return members;
}
class Foo {
int a;
int b;
}
class Bar : Foo {
int c;
int d;
int e;
}
void main() {
import std.stdio;
foreach (member; getMemberNames!Bar) {
writeln(member);
}
}
derivedMembers 返回一個字串文字元組,其中每個字串都是成員名稱。
示例輸出:
c
d
e