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


Ruby Array.shuffle用法及代碼示例


Array.shuffle 方法

在本文中,我們將研究 Array.shuffle 方法。你們一定認為該方法必須做一些與 Array 實例中元素或對象的混洗相關的事情。它並不像看起來那麽簡單。好吧,我們將在其餘內容中解決這個問題。我們將嘗試借助語法和演示程序代碼來理解它。

方法說明:

此方法是一個公共實例方法,是為 Ruby 庫中的 Array 類定義的。此方法的用法方式是隨機打亂 Array 實例中存在的對象。此方法的返回類型是一個 Array 對象,它以混洗的方式包含 self 的所有元素。您還可以提供一個可選參數rng它可以用作隨機數生成器。此方法是非破壞性方法的示例之一,這意味著此方法創建的更改不是永久或臨時的,不會影響 self Array 實例中元素的實際排列。

用法:

    array_instance.shuffle -> new_array
    or
    array_instance.shuffle(random:rng)-> new_array

所需參數:

此方法采用一個可選參數。此參數可用於隨機數生成。

範例1:

=begin
  Ruby program to demonstrate shuffle method
=end

# array declaration
table = [2,4,6,8,10,12,14,16,18,20]

puts "Array shuffle implementation"
pq =table.shuffle

puts "Array instance after shuffling:#{pq}"

puts "Array instance:"
print table

輸出

RUN 1:
Array shuffle implementation
Array instance after shuffling:[14, 18, 12, 16, 6, 4, 2, 10, 8, 20]
Array instance:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

RUN 2:
Array shuffle implementation
Array instance after shuffling:[12, 14, 18, 2, 20, 10, 6, 4, 16, 8]
Array instance:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

說明:

在上麵的代碼中,您可以觀察到我們在 Array.shuffle 方法的幫助下對 Array 實例中的元素進行了混洗。您可以觀察到,在兩次運行中,輸出或生成的 Array 實例都不同,因為元素的混洗始終是隨機的。您還可以看到 self Array 中的元素保持不變,因為該方法是非破壞性方法的示例之一。

範例2:

=begin
  Ruby program to demonstrate shuffle method
=end

# array declaration
table = [2,4,6,8,10,12,14,16,18,20]

puts "Array shuffle implementation"
pq = table.shuffle(random:Random.new(2))

puts "Array instance after shuffling:#{pq}"

puts "Array instance:"
print table

輸出

RUN 1:
Array shuffle implementation
Array instance after shuffling:[10, 4, 12, 2, 16, 6, 8, 14, 20, 18]
Array instance:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

RUN 2:
Array shuffle implementation
Array instance after shuffling:[10, 4, 12, 2, 16, 6, 8, 14, 20, 18]
Array instance:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

說明:

在上麵的代碼中,您可以觀察到我們在 Array.shuffle 方法的幫助下對 Array 實例的元素進行了混洗。我們在方法內部傳遞一個參數以生成一個隨機數。這有助於您使洗牌保持不變。在兩次運行中,您都可以觀察到返回的 Array 是常量。此方法是一種非破壞性方法,因此它不會在實際數組實例中創建任何更改。



相關用法


注:本文由純淨天空篩選整理自 Array.shuffle Method with Example in Ruby。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。