Hash.clear
clearメソッドは、ハッシュのキーと値をすべて削除してハッシュを空にする。
h = {a: 100, b: 200} h.clear p h
Array.product, Array.transpose
これを実行したらどうなるか。
arr = [1,2].product([3,4]).transpose p arr
答え
[[1, 1, 2, 2], [3, 4, 3, 4]]
一個づつ分解してみていく
Array.product
productメソッドは、配列の要素と引数の配列の要素の組合せた配列を作る。
では動きを確認する。
arr = [1,2].product([3,4])
結果
[[1, 3], [1, 4], [2, 3], [2, 4]]
Array.transpose
transposeメソッドは、配列の配列を行と列からなるデータと見立てて、行と列を入れ替えた配列の配列を作成する。
ただし、配列の大きさが異なる場合はエラーとなる。
では動きを確認してみる。
arr = [1,2].product([3,4]).transpose
ここでは[[1, 3], [1, 4], [2, 3], [2, 4]]を行列データを見立てるので
結果
[[1, 1, 2, 2], [3, 4, 3, 4]]
個人的にはこういうのはPythonでやりたい気がする、、、
enum.partition
【Rubyリファレンス】:enum.partition
partitionメソッドは、要素を2つの配列に分ける。
ブロック引数itemに要素を入れながらブロックを繰り返し実行し、ブロックの戻り値が真になった要素と、偽になった要素をそれぞれ集めて格納する。
例えばこの場合
a,b = (1..5).partition(&:odd?) p ("a is #{a}") p ("b is #{b}")
結果
“a is [1, 3, 5]”
“b is [2, 4]”
上記、真の場合のみの配列を作成したい場合は
a, = (1..5).partition(&:odd?) ## bを削除、この時「,」はそのままにする。 p ("a is #{a}")
結果
“a is [1, 3, 5]”
今回はここまで。
当ブログではRuby Silverの受験に向けてインプットした内容を記事にメモしているのでRuby Silverを受験される方はこちらものぞいてみてくださいね。