D Language
Rasgos
Buscar..
Sintaxis
- __traits (TraitsKeyword, TraitsArguments ...)
Iterando sobre los miembros de una estructura.
import std.stdio;
struct A {
int b;
void c();
string d;
};
void main() {
// The following foreach is unrolled in compile time
foreach(name; __traits(allMembers, A)) {
pragma(msg, name);
}
}
Los rasgos allMembers
devuelven una tupla de cadena que contiene los nombres de los miembros del tipo dado. Estas cadenas son conocidas en tiempo de compilación.
Iterando sobre miembros de una estructura / clase sin sus miembros heredados
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);
}
}
DeriveMembers devuelve una tupla de literales de cadena, donde cada cadena es el nombre del miembro.
Las salidas de ejemplo:
c
d
e
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow