1

我看到了关于摆脱括号的各种建议,但是当我开始我的 ruby​​ 课程时,我想看看我是否正确地创建了一个二维数组。

现在我仅限于

puts my_2D_array[0]
puts my_2D_array[1] #etc

但我想看看

[ [6,6,3] , [7,4,7] , [4,7,4] ]

而不是我得到的,这是

663747474

有什么诀窍?而且我肯定在处理一个数组 - 而不是一个字符串......

4

1 回答 1

2

p array将为您提供您要求的输出:

[[6,6,3] , [7,4,7] , [4,7,4]]

想要每一行单独一行?然后使用:

array.each {|e| p e}

要得到:

[6,6,3]
[7,4,7]
[4,7,4]

您可以向 Array 类添加一个方法:

class Array
  def ppa # 'pretty-print array'
    self.each {|e| p e} # or just 'each {|e| p e}' 
  end
end

那会让你写

array.ppa

并得到相同的三行输出。(您可以使用putsandinspect而不是p。)您认为您可能经常使用它吗?然后将此代码放入一个名为“array_print.rb”的文件中,并添加'require array_print'到“.rb”代码文件的开头。每次运行程序时,array_print.rb都会执行其中的语句,从而使您可以使用该Array方法ppr

让我们不要停在那里!假设您还想要 3 维数组、散列、数组散列等格式良好的输出。您可以详细说明我上面描述的方法,但为什么要重新发明轮子呢?有几个优秀的 Ruby gem 可以为您处理所有这些问题。一种流行的是“令人敬畏的印刷品”。安装此 gem 后,您需要做的就是添加require 'awesome_print'代码文件。然后,您可以使用它的ap方法来格式化您的输出。(有关如何安装 gems 的说明,请参阅RubyGems 。这很简单)。

为了体验一下超棒的打印功能,假设您想要显示这个散列而不是上面的数组:

hash = {"cat"=>["mice", "birds"], "dog"=>["master",["kids", "moms"]]} 

通过执行ap hash,你会得到这个:

{
    "cat" => [
        [0] "mice",
        [1] "birds"
    ],
    "dog" => [
        [0] "master",
        [1] [
            [0] "kids",
            [1] "moms"
        ]
    ]
}
于 2013-10-07T06:23:05.263 回答