レシーバと引数で与えられた配列を、レシーバの要素数個の配列に分割する。 (複数の配列の要素を、そのインデックスごとに取り分けた配列を作る、のほうが的確?)
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] a.zip #=> [[1], [2], [3]] a.zip(b) #=> [[1, 4], [2, 5], [3, 6]] a.zip(b, c) #=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
レシーバと引数とで要素数が異なる場合、
d = [10, 11] # 足りなければnilで補われる a.zip(d) #=> [[1, 10], [2, 11], [3, nil]] # 多ければ切り捨てられる d.zip(a) #=> [[10, 1], [11, 2]]