当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Array.slice!用法及代码示例


本文简要介绍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

当唯一的参数是整数 startlength 时,从偏移量 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.sizelength 为非负数,则返回一个新的空数组。

如果 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-lang.org大神的英文原创作品 Array.slice!。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。