Working with ranges

Steven Schveighoffer schveiguy at gmail.com
Sun Dec 9 20:48:39 UTC 2018


On 12/7/18 11:16 PM, Adam D. Ruppe wrote:
> On Saturday, 8 December 2018 at 04:11:03 UTC, Murilo wrote:
>> What is the difference between declaring "int[3] a = [1,2,3];" and 
>> declaring "int[] a = [1,2,3];"? Is the first an array and the second a 
>> range?
> 
> They are both arrays, just the former one has a fixed size and the 
> latter does not. Ranges require a way to iterate and consume elements, 
> meaning they cannot be fixed size.
> 
>> I always thought that leaving the square brackets empty would create 
>> an array of flexible size, it never occurred to me that it was 
>> creating something else.
> 
> That's what it is, just a flexible array also happens to be an array, 
> whereas a fixed-size array is not one.

I think, you mean "a flexible array also happens to be *a range*..."

-Steve


More information about the Digitalmars-d-learn mailing list