From: matz@... Date: 2018-02-20T08:39:21+00:00 Subject: [ruby-core:85683] [Ruby trunk Feature#4541][Rejected] Inconsistent Array.slice() Issue #4541 has been updated by matz (Yukihiro Matsumoto). Status changed from Assigned to Rejected We don't want to change the behavior of basic methods. That would break existing code. FYI, the slice is `nil` when the starting point does not fit in the array. Matz. ---------------------------------------- Feature #4541: Inconsistent Array.slice() https://bugs.ruby-lang.org/issues/4541#change-70482 * Author: kbl (Marcin Pietraszek) * Status: Rejected * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) * Target version: ---------------------------------------- Array `slice`/`[]` method is a bit inconsistent. Is it just poorly documented "feature" or a bug? In API doc I can't find this behaviour mentioned as a "special case". ```ruby def test_array_slice array = ['a', 'b', 'c'] assert_equal nil, array[3] assert_eaual nil, array[4] assert_eaual [], array[3, 0] # assert_equal nil, array[4, 0] # [] expected (or both nils in array[3, 0] and array[4, 0]) assert_equal ['c'], array[2..2] assert_equal [], array[3..3] # assert_equal nil, array[4..4] # [] expected (or both nils in array[3..3] and array[4..4]) end ``` Same behaviour can be reproduced on ruby 1.8.7 (2010-12-23 patchlevel 330) [x86_64-linux]. -- https://bugs.ruby-lang.org/ Unsubscribe: