✳️ Array#zip
#RubySilver
Array#zip (Ruby 3.4 リファレンスマニュアル)
zip
自身(self)と引数に渡した配列の各要素からなる配列の配列(二重配列)を生成して返す
code:.rb
"a", "b", "c".zip(1,2,3)
=> "a", 1], "b", 2, ["c", 3
1,2,3.zip(4,5,6)
=> 1, 4], 2, 5, [3, 6
eachは、ありでもなしでも動作は同じ
code:.rb
"a", "b", "c".zip(1,2,3).each {|x| p x}
# eachなしでも、ブロックを渡したら、生成された配列の各要素に対してブロックを適用する仕様になってる。
"a", "b", "c".zip(1,2,3) {|x| p x}
⚠️引数を渡さないとただselfの各要素を単独の配列にして、さらにそれを配列の中に入れるだけになる。
code:.rb
1,2,3.zip
=> 1], 2, [3
# 模擬問題
a = "a","b","c"
b = 1,2,3
a,b.zip{|x,y| p x,y} # > a,b = "a", "b", "c"], [1, 2, 3
=>
"a", "b"
1, 2