0

私はインターウェブのいたるところにいましたが、ハッシュ内の配列にアクセスする方法を見つけることができないようです。平坦化だけでなく反復する方法もたくさんありますが、単純なアクセスはありません。

hash = Hash.new()
data1 = "foo"
data2 = "bar"
hash["foobar"] = {data1, data2}

これはすべて機能しますが、ハッシュ内でdata1 と data2 に個別にアクセスするにはどうすればよいですか?

hash["foobar"][0]putsが出力されるはずだと思ってfooいましたが、 が返されますnil

注: ハッシュ内のすべての配列には、正確に 2 つの要素があります。

答えは単純な1ライナーであることはわかっていますが、見つけられないようです。

4

1 に答える 1

2

質問にコメントしたように、配列リテラルは中括弧[ ]ではなく角括弧{ }です。最後の行を次のように変更します。

hash["foobar"] = [data1, data2]

(おそらく、ハッシュ リテラルにキーがないため、nil を取得していました。ここで0テストすると、明らかに (*震え*)として機能することが明らかになったため、イテラルは と同等でした。),=>{data1 => data2}

于 2013-04-19T03:15:33.740 に答える