经过多年的 PHP 编程,我刚刚开始学习 Ruby。我想知道 Ruby 中的数组与 PHP 数组有何不同,以及它与 Ruby 中的哈希有何相似之处/不同之处。
user1680049
问问题
1033 次
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 将散列和列表混合为一种Array
类型,而 Ruby 没有。
与 Haskell 等语言(列表必须是同质的)相反,哈希/数组可以包含 PHP 和 Ruby 中的任何类型的混合值:
array('foo' => 'bar', 'baz' => array(42, 7), 'blerg' => array(array(array())))
{ 'foo' => 'bar', 'baz' => [42, 7], 'blerg' => [[[]]] }
它们在底层有何不同很难回答,因为语言非常不同,首先数组/哈希是 Ruby 中的对象,而不是 PHP 中的对象。如果您有特定的有针对性的幕后实现细节问题,请提出一个。
于 2012-10-23T10:58:16.567 回答
1
你有没有先阅读To Ruby From PHP?
于 2012-10-23T10:57:20.080 回答