Bug 22580 – [Arrays]

Status
NEW
Severity
normal
Priority
P3
Component
dlang.org
Product
D
Version
D2
Platform
All
OS
All
Creation time
2021-12-09T14:14:25Z
Last change time
2024-12-15T15:27:18Z
Assigned to
No Owner
Creator
Kurt Krueckeberg
Moved to GitHub: dlang.org#4121 →

Comments

Comment #0 by kurt.krueckeberg — 2021-12-09T14:14:25Z
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..."
Comment #1 by andrej.mitrovich — 2022-07-06T07:55:39Z
(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.
Comment #2 by robert.schadek — 2024-12-15T15:27:18Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dlang.org/issues/4121 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB