[Issue 22580] [Arrays]

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jul 6 07:55:39 UTC 2022


https://issues.dlang.org/show_bug.cgi?id=22580

Andrej Mitrovic <andrej.mitrovich at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrej.mitrovich at gmail.com

--- Comment #1 from Andrej Mitrovic <andrej.mitrovich at gmail.com> ---
(In reply to Kurt Krueckeberg from comment #0)
> I am new to D, but the code example explanation in section 12.6 is
> confusing. The code example in section 12.6 refers to the "slice operator":
> 
> "When the slice operator appears as the left-hand side of an assignment
> expression, it means that the contents of the array are the target of the
> assignment rather than a reference to the array..."
> 
> Is there really a special "slice operator"? The operator used in the example
> in section 12.6 is array index operator, [].  So shouldn't the explanation
> be changed to refer to the index operator (being applied to a slice that
> appears on the left-hand side of an assignment statement)? To me, it is
> clearer to say something like:
> 
> "When the slice appears on the left-hand side of an assignment with the
> index operator, it means that the contents of the array are the target of
> the assignment rather than a reference to the array..."
> 
> Or to say:
> 
> "When the slice is indexed with the [] operator and it appears on the
> left-hand side of an assignment, it means that the contents of the array are
> the target of the assignment rather than a reference to the array..."
> 
> Or simply:
> 
> "When the slice is indexed and it appears on the left-hand side of an
> assignment, it means that the contents of the array are the target of the
> assignment rather than a reference to the array..."

The slice operator is specifically `[]` or `[1..2]`. And you can think of `[]`
as being the same as `[0..$]`, where $ is the array length.

The index operator is `[1]` for example. It doesn't return a slice of the
original array, it returns a single element from the array. That's indexing,
not slicing.

Perhaps there should be better documentation about the difference between the
two though.

--


More information about the Digitalmars-d-bugs mailing list