當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Array.array[index] =用法及代碼示例


本文簡要介紹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"]

當給定整數參數 startlengthobject 不是數組時,刪除從偏移量 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-lang.org大神的英文原創作品 Array.array[index] =。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。