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


Ruby Array.product用法及代碼示例


本文簡要介紹ruby語言中 Array.product 的用法。

用法

product(*other_arrays) → new_array
product(*other_arrays) {|combination| ... } → self

計算並返回或產生所有數組中的所有元素組合,包括 selfother_arrays

  • 組合的數量是所有數組大小的乘積,包括 selfother_arrays

  • 返回組合的順序是不確定的。

當沒有給出塊時,將組合作為數組數組返回:

a = [0, 1, 2]
a1 = [3, 4]
a2 = [5, 6]
p = a.product(a1)
p.size # => 6 # a.size * a1.size
p # => [[0, 3], [0, 4], [1, 3], [1, 4], [2, 3], [2, 4]]
p = a.product(a1, a2)
p.size # => 12 # a.size * a1.size * a2.size
p # => [[0, 3, 5], [0, 3, 6], [0, 4, 5], [0, 4, 6], [1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6]]

如果任何參數是空數組,則返回一個空數組。

如果沒有給出參數,則返回一個由 1 元素數組組成的數組,每個數組都包含 self 的一個元素:

a.product # => [[0], [1], [2]]

當給定一個塊時,將每個組合產生為一個數組;返回 self

a.product(a1) {|combination| p combination }

輸出:

[0, 3]
[0, 4]
[1, 3]
[1, 4]
[2, 3]
[2, 4]

如果任何參數是空數組,則不調用該塊:

a.product(a1, a2, []) {|combination| fail 'Cannot happen' }

如果沒有給出參數,則將 self 的每個元素生成為 1 元素數組:

a.product {|combination| p combination }

輸出:

[0]
[1]
[2]

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Array.product。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。