associative array with element type struct ?
Ali Çehreli
acehreli at yahoo.com
Thu Sep 23 22:28:21 UTC 2021
On 9/23/21 3:06 PM, Paul wrote:
> Can I have an associative array with the element type being a struct?
Of course! And it's very common. :)
> ...this
> 26 // simple dual tone key struct
> 27 struct keytones { ushort rowFreq; ushort colFreq; }
> 28
> 29 // keypad associative array
> 30 keytones[string] keypad;
> 31 keypad["1"].rowFreq = 697; keypad["1"].colFreq = 1209;
>
> ....gets this response from DMD compiler
>
> aaa.d(30): Error: undefined identifier `keypad`
I think you got that error from a different experiment because 'keypad'
is clearly valid in that code. However, you are attempting to access
members of a non-existing element: There is no element corresponding to
"1" in the AA (yet).
There are multiple ways of populating an AA but I usually and simply
assign an rvalue in such cases:
void main() {
// simple dual tone key struct
struct keytones { ushort rowFreq; ushort colFreq; }
// keypad associative array
keytones[string] keypad;
keypad["1"] = keytones(697, 1209);
}
Ali
More information about the Digitalmars-d-learn
mailing list