如何在ruby中调用多维数组的项



我有一个像这样的数组

i = 0
lines.each do |l|
  array[i] = l.split(',')
  i+=1
end

和我想调用$array[1][3]像在php,但它没有工作。我已经在谷歌上搜索了几个小时了,还是找不到解决办法。

首先是对代码的一些增强:

# initialize your vars
array = []
lines.each do |l|
  array << l.split ',' # use the << operator
end

现在在ruby中,数组的美元符号是不必要的,它表示全局变量,使用它们不是好的做法。

您应该像这样访问变量:array[1][3] .

你可以让你的代码在ruby1.9中变成一行:

array = lines.each_line.map {|l| l.split ',' }

如果您的问题是调用array[6][3]返回类似Error: method [] undefined for nil的东西,那么这样做:

array[6].to_a[3]

当行(6)或列(3)超出范围时,它返回nilto_a确保,即使行超出范围,它仍然给出一个空数组,以便搜索列不会返回错误。

相关内容

  • 没有找到相关文章

最新更新