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.

Reply via email to