本文简要介绍ruby语言中 Array.array[index] =
的用法。
用法
array[index] = object → object
array[start, length] = object → object
array[range] = object → object
分配 self
中的元素;返回给定的 object
。
当给定整数参数 index
时,将 object
分配给 self
中的元素。
如果 index
为非负数,则将 object
分配给偏移量 index
的元素:
a = [:foo, 'bar', 2]
a[0] = 'foo' # => "foo"
a # => ["foo", "bar", 2]
如果 index
大于 self.length
,则扩展数组:
a = [:foo, 'bar', 2]
a[7] = 'foo' # => "foo"
a # => [:foo, "bar", 2, nil, nil, nil, nil, "foo"]
如果index
为负数,则从数组末尾倒数:
a = [:foo, 'bar', 2]
a[-1] = 'two' # => "two"
a # => [:foo, "bar", "two"]
当给定整数参数 start
和 length
且 object
不是数组时,删除从偏移量 start
开始的 length - 1
元素,并在偏移量 start
处分配 object
:
a = [:foo, 'bar', 2]
a[0, 2] = 'foo' # => "foo"
a # => ["foo", 2]
如果start
为负数,则从数组末尾倒数:
a = [:foo, 'bar', 2]
a[-2, 2] = 'foo' # => "foo"
a # => [:foo, "foo"]
如果 start
是非负数且在数组之外 ( >= self.size
),则使用 nil
扩展数组,在偏移量 start
处分配 object
并忽略 length
:
a = [:foo, 'bar', 2]
a[6, 50] = 'foo' # => "foo"
a # => [:foo, "bar", 2, nil, nil, nil, "foo"]
如果 length
为零,则在偏移量 start
及其后移动元素,并在偏移量 start
处分配 object
:
a = [:foo, 'bar', 2]
a[1, 0] = 'foo' # => "foo"
a # => [:foo, "foo", "bar", 2]
如果length
对于现有数组来说太大,则不扩展数组:
a = [:foo, 'bar', 2]
a[1, 5] = 'foo' # => "foo"
a # => [:foo, "foo"]
当 Range 参数 range
给出且 object
是一个数组时,删除从偏移量 start
开始的 length - 1
元素,并在偏移量 start
处分配 object
:
a = [:foo, 'bar', 2]
a[0..1] = 'foo' # => "foo"
a # => ["foo", 2]
如果 range.begin
为负数,则从数组末尾倒数:
a = [:foo, 'bar', 2]
a[-2..2] = 'foo' # => "foo"
a # => [:foo, "foo"]
如果数组长度小于 range.begin
,则在偏移量 range.begin
处分配 object
,并忽略 length
:
a = [:foo, 'bar', 2]
a[6..50] = 'foo' # => "foo"
a # => [:foo, "bar", 2, nil, nil, nil, "foo"]
如果 range.end
为零,则在偏移量 start
及其后移动元素,并在偏移量 start
处分配 object
:
a = [:foo, 'bar', 2]
a[1..0] = 'foo' # => "foo"
a # => [:foo, "foo", "bar", 2]
如果 range.end
为负数,则在偏移量 start
处分配 object
,保留其后的 range.end.abs -1
元素,并删除超出的元素:
a = [:foo, 'bar', 2]
a[1..-1] = 'foo' # => "foo"
a # => [:foo, "foo"]
a = [:foo, 'bar', 2]
a[1..-2] = 'foo' # => "foo"
a # => [:foo, "foo", 2]
a = [:foo, 'bar', 2]
a[1..-3] = 'foo' # => "foo"
a # => [:foo, "foo", "bar", 2]
a = [:foo, 'bar', 2]
如果 range.end
对于现有数组来说太大,则替换数组元素,但不使用 nil
值扩展数组:
a = [:foo, 'bar', 2]
a[1..5] = 'foo' # => "foo"
a # => [:foo, "foo"]
相关用法
- Ruby Array.array[index]用法及代码示例
- Ruby Array.array + other_array用法及代码示例
- Ruby Array.array | other_array用法及代码示例
- Ruby Array.array ==用法及代码示例
- Ruby Array.array & other_array用法及代码示例
- Ruby Array.array <=>用法及代码示例
- Ruby Array.array << object用法及代码示例
- Ruby Array.array * n用法及代码示例
- Ruby Array.array - other_array用法及代码示例
- Ruby Array.assoc(obj)用法及代码示例
- Ruby Array.abbrev用法及代码示例
- Ruby Array.assoc用法及代码示例
- Ruby Array.all?用法及代码示例
- Ruby Array.at用法及代码示例
- Ruby Array.append用法及代码示例
- Ruby Array.any?用法及代码示例
- Ruby Array.push用法及代码示例
- Ruby Array.hash用法及代码示例
- Ruby Array.to_a用法及代码示例
- Ruby Array.to_h用法及代码示例
- Ruby Array.to_s用法及代码示例
- Ruby Array.take()用法及代码示例
- Ruby Array.reject!用法及代码示例
- Ruby Array.flatten!用法及代码示例
- Ruby Array.reject用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Array.array[index] =。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。