本文简要介绍ruby语言中 Array.slice!
的用法。
用法
slice!(n) → object or nil
slice!(start, length) → new_array or nil
slice!(range) → new_array or nil
从 self
移除并返回元素。
当唯一的参数是整数 n
时,删除并返回 self
中的 nth
元素:
a = [:foo, 'bar', 2]
a.slice!(1) # => "bar"
a # => [:foo, 2]
如果 n
为负数,则从 self
的末尾倒数:
a = [:foo, 'bar', 2]
a.slice!(-1) # => 2
a # => [:foo, "bar"]
如果 n
超出范围,则返回 nil
。
当唯一的参数是整数 start
和 length
时,从偏移量 start
开始的 self
中删除 length
元素;在新数组中返回已删除的对象:
a = [:foo, 'bar', 2]
a.slice!(0, 2) # => [:foo, "bar"]
a # => [2]
如果 start + length
超出数组大小,则删除并返回从偏移量 start
到末尾的所有元素:
a = [:foo, 'bar', 2]
a.slice!(1, 50) # => ["bar", 2]
a # => [:foo]
如果 start == a.size
和 length
为非负数,则返回一个新的空数组。
如果 length
为负数,则返回 nil
。
当唯一的参数是 Range 对象 range
时,将 range.min
视为上面的 start
并将 range.size
视为上面的 length
:
a = [:foo, 'bar', 2]
a.slice!(1..2) # => ["bar", 2]
a # => [:foo]
如果 range.start == a.size
,则返回一个新的空数组。
如果 range.start
大于数组大小,则返回 nil
。
如果range.end
为负数,则从数组末尾倒数:
a = [:foo, 'bar', 2]
a.slice!(0..-2) # => [:foo, "bar"]
a # => [2]
如果 range.start
为负数,则从数组末尾向后计算起始索引:
a = [:foo, 'bar', 2]
a.slice!(-2..2) # => ["bar", 2]
a # => [:foo]
相关用法
- Ruby Array.slice()用法及代码示例
- Ruby Array.slice用法及代码示例
- Ruby Array.sort用法及代码示例
- Ruby Array.shuffle!用法及代码示例
- Ruby Array.sort_by用法及代码示例
- Ruby Array.sample()用法及代码示例
- Ruby Array.select!用法及代码示例
- Ruby Array.sort_by!用法及代码示例
- Ruby Array.sort!用法及代码示例
- Ruby Array.sum用法及代码示例
- Ruby Array.shift用法及代码示例
- Ruby Array.sample用法及代码示例
- Ruby Array.shuffle用法及代码示例
- Ruby Array.select用法及代码示例
- Ruby Array.push用法及代码示例
- Ruby Array.hash用法及代码示例
- Ruby Array.to_a用法及代码示例
- Ruby Array.to_h用法及代码示例
- Ruby Array.to_s用法及代码示例
- Ruby Array.array + other_array用法及代码示例
- Ruby Array.take()用法及代码示例
- Ruby Array.reject!用法及代码示例
- Ruby Array.flatten!用法及代码示例
- Ruby Array.reject用法及代码示例
- Ruby Array.repeated_permutation()用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Array.slice!。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。