2

何年にもわたる PHP でのプログラミングの後、Ruby を学び始めたばかりです。Ruby の配列が PHP の配列とどのように異なるのか、また Ruby のハッシュとの類似点/相違点は何かを知りたかったのです。

4

2 に答える 2

7

他の言語ではリストとも呼ばれる配列は、物事の順序付けられたコレクションです。PHPでは、これは次のとおりです。

array('foo', 'bar', 'baz')

Ruby では、次のようになります。

['foo', 'bar', 'baz']

$arr[0]数値インデックス/を使用してアクセスしますarr[0]

ハッシュは、PHP では連想配列と呼ばれます。それらはキーと値で構成されています。

array('foo' => 'bar', 'baz' => 42)
{ 'foo' => 'bar', 'baz' => 42 }

実際、どちらのタイプも PHP の連想配列であり、それぞれ数値キーまたは文字列キーを使用するだけです。PHP では同じ言語構造と型を使用しますが、Ruby を含む他の言語では異なる型です。PHP はハッシュとリストを 1 つのArray型に混ぜますが、Ruby は混ぜません。

リストが同種でなければならない Haskell のような言語とは対照的に、ハッシュ/配列は、PHP と Ruby の両方であらゆる種類の混合値を含むことができます。

array('foo' => 'bar', 'baz' => array(42, 7), 'blerg' => array(array(array())))
{ 'foo' => 'bar', 'baz' => [42, 7], 'blerg' => [[[]]] }

配列/ハッシュは PHP ではなく Ruby のオブジェクトであることから始めて、言語は非常に異なるため、フードの下でそれらがどのように異なるかについてはほとんど答えられません。特定のターゲットを絞った内部実装の詳細について質問がある場合は、質問してください。

于 2012-10-23T10:58:16.567 に答える
1

最初に「PHP から Ruby へ」を読みましたか?

于 2012-10-23T10:57:20.080 に答える