From: Rodrigo Rosenfeld Rosas Date: 2011-06-29T20:28:04+09:00 Subject: [ruby-core:37663] [Ruby 1.9 - Bug #4541] Inconsistent Array.slice() Issue #4541 has been updated by Rodrigo Rosenfeld Rosas. Nobuyoshi, could you explain why you don't find the current behavior confusing and would like to keep it as it is? What would be a useful use case for the current implementation? ---------------------------------------- Bug #4541: Inconsistent Array.slice() http://redmine.ruby-lang.org/issues/4541 Author: Marcin Pietraszek Status: Assigned Priority: Normal Assignee: Yukihiro Matsumoto Category: Target version: 1.9.3 ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-linux] =begin 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". 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]. =end -- http://redmine.ruby-lang.org