Actions
Feature #21300
openSuggestion: Method for Array truncation
    Feature #21300:
    Suggestion: Method for Array truncation
  
Status:
Open
Assignee:
-
Target version:
-
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) 6 months 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