digitalmars.D - Error: no property 'sort' for type 'ulong[string]', or sometimes not
- Derix (24/24) Oct 20 2013 Hi there,
- Jakob Ovrum (14/38) Oct 20 2013 Associative arrays are not sortable and have no defined order of
- Derix (5/21) Oct 20 2013 OK, I get the idea. I am still a bit removed from navigating the
Hi there, So I've just stated learning D. Playing with associative arrays, I wrote this simple function. No big deal. void associativeArrayFu(){ ulong[string] arr; arr["foo"]=1; arr["bar"]=2; arr["foo"]=45; foreach( thing;arr.sort){ writeln( thing ); } } Compiles and runs just fine. Stating to have a bunch of funtions in one file, I reorganised my sources among several files (in the same project in Eclipse). Now the same function yelds this error when compiling: Error: no property 'sort' for type 'ulong[string]' wether it is in a source file alongside other functions, alone in its own file, or even all alone in its own project. Not that I care that much about this poor function, but I am puzzled. What did I miss ? And oh, maybe this is not the right place for a beginner ? Is there any better place ?
Oct 20 2013
On Sunday, 20 October 2013 at 14:50:52 UTC, Derix wrote:Hi there, So I've just stated learning D. Playing with associative arrays, I wrote this simple function. No big deal. void associativeArrayFu(){ ulong[string] arr; arr["foo"]=1; arr["bar"]=2; arr["foo"]=45; foreach( thing;arr.sort){ writeln( thing ); } } Compiles and runs just fine. Stating to have a bunch of funtions in one file, I reorganised my sources among several files (in the same project in Eclipse). Now the same function yelds this error when compiling: Error: no property 'sort' for type 'ulong[string]' wether it is in a source file alongside other functions, alone in its own file, or even all alone in its own project. Not that I care that much about this poor function, but I am puzzled. What did I miss ?Associative arrays are not sortable and have no defined order of element pairs. You can get an array of its values and sort that, by using the `values` property: --- import std.algorithm : sort; import std.stdio : writeln; foreach(value; aa.values.sort()) { writeln(value); } ---And oh, maybe this is not the right place for a beginner ? Is there any better place ?The D.learn group is the most appropriate for these kinds of questions :)
Oct 20 2013
Associative arrays are not sortable and have no defined order of element pairs.Yep, that's definitely the point that I missed.You can get an array of its values and sort that, by using the `values` property: --- import std.algorithm : sort; import std.stdio : writeln; foreach(value; aa.values.sort()) { writeln(value); } ---OK, I get the idea. I am still a bit removed from navigating the numerous libraries, but I'll guess I'll get used to it.Yep, found out later that it was right in front of me, d'oh ;-) thanks a lot for your spot-on answers !And oh, maybe this is not the right place for a beginner ? Is there any better place ?The D.learn group is the most appropriate for these kinds of questions :)
Oct 20 2013