Ruby与PHP在数组和散列中的差异
经过多年的PHP编程,我刚刚开始学习Ruby。我想知道Ruby中的数组与PHP数组有何不同,以及它与Ruby中的散列有哪些相似之处/不同之处。您是否先阅读了?数组,在其他语言中也称为列表,是事物的有序集合。在PHP中是这样的:Ruby与PHP在数组和散列中的差异,php,ruby,Php,Ruby,经过多年的PHP编程,我刚刚开始学习Ruby。我想知道Ruby中的数组与PHP数组有何不同,以及它与Ruby中的散列有哪些相似之处/不同之处。您是否先阅读了?数组,在其他语言中也称为列表,是事物的有序集合。在PHP中是这样的: array('foo', 'bar', 'baz') 在Ruby中,这是: ['foo', 'bar', 'baz'] 您可以使用数字索引访问它们:$arr[0]/arr[0] 散列在PHP中称为关联数组。它们由键和值组成: array('foo' => 'ba
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将散列和列表混合到一个数组类型中,Ruby没有
与Haskell等语言不同,列表必须是同质的,哈希/数组在PHP和Ruby中可以包含任何类型的混合值:
array('foo' => 'bar', 'baz' => array(42, 7), 'blerg' => array(array(array())))
{ 'foo' => 'bar', 'baz' => [42, 7], 'blerg' => [[[]]] }
它们之间的区别很难回答,因为语言非常不同,首先数组/哈希是Ruby中的对象,而不是PHP中的对象。如果您有一个特定的“机罩下目标”实施细节问题,请提出一个。您希望答案的深度如何?从表面上看,它们是完全不同的,但表面上的相似之处很容易解释。同样在PHP中,您可以将两者混合在一个数组中,如array('foo','bar','baz'=>'qux')
哈希如何像在关联数组中一样将哈希和数组作为值?@rkm抱歉?你的意思是像{'foo'=>['bar',42]}
?是的..但是更嵌套的东西像{'db1'=>{'table1'=>['field1','field2'],'table2'=>['field1','field2']},'db2'=>{'table'=>['field1','field2']}@rkm是的,当然可以。数组或散列中的值可以是数组或散列,就像在PHP中一样。