我看到了关于摆脱括号的各种建议,但是当我开始我的 ruby 课程时,我想看看我是否正确地创建了一个二维数组。
现在我仅限于
puts my_2D_array[0]
puts my_2D_array[1] #etc
但我想看看
[ [6,6,3] , [7,4,7] , [4,7,4] ]
而不是我得到的,这是
663747474
有什么诀窍?而且我肯定在处理一个数组 - 而不是一个字符串......
我看到了关于摆脱括号的各种建议,但是当我开始我的 ruby 课程时,我想看看我是否正确地创建了一个二维数组。
现在我仅限于
puts my_2D_array[0]
puts my_2D_array[1] #etc
但我想看看
[ [6,6,3] , [7,4,7] , [4,7,4] ]
而不是我得到的,这是
663747474
有什么诀窍?而且我肯定在处理一个数组 - 而不是一个字符串......
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
并得到相同的三行输出。(您可以使用puts
andinspect
而不是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"
]
]
}