how to access struct member using [] operator?
grampus via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Sep 25 08:35:03 PDT 2016
On Sunday, 25 September 2016 at 09:01:44 UTC, Namespace 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
>
> ----
> import std.stdio;
>
> struct Something
> {
> int x, y;
> float z;
>
> auto opIndex()(string member) {
> switch (member) {
> case "x": return this.x;
> case "y": return this.y;
> case "z": return this.z;
> default: assert(0);
> }
> }
> }
>
> void main(string[] args)
> {
> Something s;
> writeln(s["x"]);
> writeln(s["z"]);
> }
> ----
I think this approach should work for me.
Thank you Namespace:)
More information about the Digitalmars-d-learn
mailing list