Project

General

Profile

Actions

Feature #21300

open

Suggestion: Method for Array truncation

Added by sigsys (Math Ieu) 4 days ago. Updated 4 days ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:121798]

Description

#pop(n) and #slice!(...) can be used for truncation, but they both allocate a new array for the deleted elements (unless you do it one at a time with #pop()...), which is not always needed.

I propose adding a #size= method for truncating without allocating a new array:

a = [10, 20, 30]
a.size = 2
a # [10, 20]

Growing the array could be allowed as well...

a = [10, 20]
a.size = 4
a # [10, 20, nil, nil]

Updated by Eregon (Benoit Daloze) 4 days ago

Using ary.size = feels unidiomatic Ruby to me, it feels very low level and not very expressive about the intent (e.g. it's not clear if shrinking or growing).

I don't think pop(n) returning an Array is big overhead, i.e., I don't think there is enough reason to add another Array method for this rarely-needed case.

Actions

Also available in: Atom PDF

Like0
Like0