I am having trouble understanding this comment.
Array({:a => "a", :b => "b"}) #=> [[:a, "a"], [:b, "b"]]
Could you explain how it works in detail?
{:a => "a", :b => "b"}
ハッシュを作成します。
これを に渡すとArray
、配列の配列が作成されます。外側の配列の各配列要素は、ハッシュの 1 つの項目のキーと値を含む別の配列になります。
メソッドはArray
ハッシュを配列に変換します。
したがって、ハッシュの各エントリに対して、ruby は 2 つの要素 (キーとハッシュ内のエントリの値) を持つ配列を作成します。
配列には 2 つのエントリがあります。
:a => "a"
どれになる[:a, "a"]
:b => "b"
どれになる[:b, "b"]
実はカーネルモジュールが提供するメソッドです。
最初に呼び出しto_ary
(配列の自己を返す)を試み、次にto_a
引数を試みます。
対応するメソッドto_ary
およびを使用しても同じ結果が得られますto_a
。