2013-04-17 30 views
1

我一直在玩learnstreet上的项目,但我发现一些关于他们访问数组中元素的方式感兴趣,并希望得到一些澄清。 要访问的第一个数组中的元素,我知道我可以这样做访问红宝石阵列中的元素

a = [2,4,5,6,7] 
a[0] 
output=> 2 

但是他们通过执行类似

a = [2,4,5,6,7] 
a[0,1] 
output => 2 

我猜测可能是访问的第一个元素learnstreet网站他们正在使用一个老版本的红宝石,需要你这样做。纠正我,如果我错了,只是好奇为什么这样做。

其实要验证这一点,我更进一步,并在pry尝试它,但我注意到,使用他们的方法只返回数组的第一个元素。

enter image description here

我的红宝石的版本是=>红宝石1.9.3p327(2012年11月10日修订版37606)[x86_64的-darwin12.2.0]

+1

而不是猜测,也许阅读[文档](http://ruby-doc.org/core-2.0/Array.html#method-i-5B-5D)阵列将回答你的问题。 –

回答

6

即抓住第一索引的另一种方式他说:

a[0, 1]

开始在0指数和抢一个长度的片。这对于抓取数组的“块”或“切片”非常有用。通常,只涉及数组中的某一项时,使用单个索引版本更为明确。即a[0]

请参阅here了解更多信息。

2

最好敛索引的n个值

一个[0..1]

它将返回0索引到索引1 例如: - 一个= [2,4,5, 6,7]

a[0..1] 

output => [2,4] 

它会整洁干净,但它会返回数组中的值而不是字符串。