digitalmars.D - Auto and empty array
- Igor (9/9) Jun 29 2014 In case I want to create a new array with size I know, it's very
- w0rp (3/12) Jun 29 2014 Just type int[] a; null and empty slices are indistinguishable in
- Daniel Murphy (2/5) Jun 30 2014 auto a = (int[]).init;
- Daniel Kozak via Digitalmars-d (11/20) Jun 30 2014 import std.stdio;
- Daniel Kozak via Digitalmars-d (16/25) Jun 30 2014 You can write some helper function:
In case I want to create a new array with size I know, it's very convenient to use auto: auto a = new int[](13); But if I want to create a new, empty array? Then using auto is not convenient and I have: auto a = new int[](0); It seems a bit bloated, compared to int[] a = []. I like using auto because of uniform syntax and other reasons. Is there any concise way to create a new empty array with auto?
Jun 29 2014
On Monday, 30 June 2014 at 05:39:38 UTC, Igor wrote:In case I want to create a new array with size I know, it's very convenient to use auto: auto a = new int[](13); But if I want to create a new, empty array? Then using auto is not convenient and I have: auto a = new int[](0); It seems a bit bloated, compared to int[] a = []. I like using auto because of uniform syntax and other reasons. Is there any concise way to create a new empty array with auto?Just type int[] a; null and empty slices are indistinguishable in terms of accessing .length and using foreach.
Jun 29 2014
"Igor" wrote in message news:dladvaltigiapekureja forum.dlang.org...It seems a bit bloated, compared to int[] a = []. I like using auto because of uniform syntax and other reasons. Is there any concise way to create a new empty array with auto?auto a = (int[]).init;
Jun 30 2014
V Mon, 30 Jun 2014 05:39:36 +0000 Igor via Digitalmars-d <digitalmars-d puremagic.com> napsáno:In case I want to create a new array with size I know, it's very convenient to use auto: auto a = new int[](13); But if I want to create a new, empty array? Then using auto is not convenient and I have: auto a = new int[](0); It seems a bit bloated, compared to int[] a = []. I like using auto because of uniform syntax and other reasons. Is there any concise way to create a new empty array with auto?import std.stdio; void main(string[] args) { auto a = new int[13]; auto b = new int[0]; writeln(a.length); writeln(b.length); stdin.readln; }
Jun 30 2014
V Mon, 30 Jun 2014 05:39:36 +0000 Igor via Digitalmars-d <digitalmars-d puremagic.com> napsáno:In case I want to create a new array with size I know, it's very convenient to use auto: auto a = new int[](13); But if I want to create a new, empty array? Then using auto is not convenient and I have: auto a = new int[](0); It seems a bit bloated, compared to int[] a = []. I like using auto because of uniform syntax and other reasons. Is there any concise way to create a new empty array with auto?You can write some helper function: import std.stdio; auto newa(T)(size_t length = 0) { return new T[length]; } void main(string[] args) { auto a = newa!(int)(13); auto b = newa!(int); writeln(typeid(a),":", a.length); writeln(typeid(b),":", b.length); stdin.readln; }
Jun 30 2014