Actions
Bug #14086
closedInterpreter seems to sneak in a nil value when a comma is missing on a nested array wrapped in parenthesis
Description
I believe the title is self explanatory. But code is always louder than words:
$ ruby --version
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin16]
$ irb
2.2.4 :001 > ([[2,2], [3,3], [4,4], [5,5], [6,6]])
=> [[2, 2], [3, 3], [4, 4], [5, 5], [6, 6]]
2.2.4 :002 > ([[2,2] [3,3], [4,4], [5,5], [6,6]])
=> [nil, [4, 4], [5, 5], [6, 6]]
the only difference between lines 1 and 2 in my REPL is a coma right after the first nested array. is this the expected behaviour?
Updated by zverok (Victor Shepelev) about 7 years ago
is this the expected behaviour?
Yes.
Try this:
[2, 2][3, 3] # => nil
Why?
Because it is read as "Array of [2,2]
, call operator [] with arguments 3, 3
(which means fetch 3 elements starting from 3rd)". As this array doesn't have a 3rd element, the result of the operation is nil
. So the first item of your larger array is the result of this calculation, e.g. nil
.
Updated by marcandre (Marc-Andre Lafortune) about 7 years ago
- Status changed from Open to Rejected
Actions
Like0
Like0Like0