On Sunday, 25 September 2016 at 10:44:38 UTC, pineapple wrote:
On Sunday, 25 September 2016 at 04:54:31 UTC, grampus wrote:
Dear all
For example, I have a struct
struct point{int x;int y}
point a;
Is there an easy way to access x and y by using a["x"] and
a["y"]
I guess I need to overload [], but can't figure out how.
Someone can help? Thank you very much
If they all share the same type, you can use a switch like
@Namespace suggested.
If the "x" and "y" strings are available at compile-time, you
can use a mixin.
auto getattr(string attr)(point a){
mixin(`return a.` ~ attr ~ `;);
}
auto x = a.attr!"x";
Otherwise, no. D types aren't dynamic in the same way that
Python's types are.
Thank you all for the clear reply.
Now I know how far I can go on this.