digitalmars.D.learn - Having "in" for arrays
- Fra Mecca (12/12) Nov 22 2017 Why doesn't D have a in keyword for arrays?
- Jonathan M Davis (6/18) Nov 22 2017 in is supposed to be at worst O(log n), whereas to do the operation for ...
- Dukc (4/9) Nov 22 2017 Also note that even if it wereimplemented, you search for 'r'
Why doesn't D have a in keyword for arrays? The docs explains that you can use in only for associative arrays but I don't see the reasons for such decision. Example code: void main() { auto v = ["r", "i", "o"]; assert ("r" in v); } That currently fails: main.d(4): Error: incompatible types for (("r") in (v)): 'string' and 'string[]'
Nov 22 2017
On Wednesday, November 22, 2017 08:03:50 Fra Mecca via Digitalmars-d-learn wrote:Why doesn't D have a in keyword for arrays? The docs explains that you can use in only for associative arrays but I don't see the reasons for such decision. Example code: void main() { auto v = ["r", "i", "o"]; assert ("r" in v); } That currently fails: main.d(4): Error: incompatible types for (("r") in (v)): 'string' and 'string[]'in is supposed to be at worst O(log n), whereas to do the operation for an array would be O(n). If you want to search for a specific element in an array than use std.algorithm.find or std.algorithm.canFind. - Jonathan M Davis
Nov 22 2017
On Wednesday, 22 November 2017 at 08:03:50 UTC, Fra Mecca wrote:void main() { auto v = ["r", "i", "o"]; assert ("r" in v); }Also note that even if it wereimplemented, you search for 'r' instead of "r". "r" is a string, but you would want to search for a char.
Nov 22 2017
On Wednesday, 22 November 2017 at 09:36:43 UTC, Dukc wrote:On Wednesday, 22 November 2017 at 08:03:50 UTC, Fra Mecca wrote:Isn't 'v' an array of strings? If it were a array of chars, then the search would be 'r'. bye, lobovoid main() { auto v = ["r", "i", "o"]; assert ("r" in v); }Also note that even if it wereimplemented, you search for 'r' instead of "r". "r" is a string, but you would want to search for a char.
Nov 22 2017
On Wednesday, 22 November 2017 at 10:32:48 UTC, lobo wrote:On Wednesday, 22 November 2017 at 09:36:43 UTC, Dukc wrote:Oops, you're correct. My bad.On Wednesday, 22 November 2017 at 08:03:50 UTC, Fra Mecca wrote:Isn't 'v' an array of strings? If it were a array of chars, then the search would be 'r'. bye, lobovoid main() { auto v = ["r", "i", "o"]; assert ("r" in v); }Also note that even if it wereimplemented, you search for 'r' instead of "r". "r" is a string, but you would want to search for a char.
Nov 22 2017