如何在数组中显示元素时添加空行

时间:2015-10-02 04:46:01

标签: ruby

我的课程Actor有一些属性。

class Actor
  attr_accessor :name, :age, :sex, :birth_date, :birthplace, :filmography, :death_date
  def alive?
    death_date.nil?
  end
end

当我遍历actors的数组Actors并显示如下元素时:

display = actors.each do |i|
  puts puts i.inspect
end

我在项目之间得到空行:

#<Actor:0x007f7c04da41c0 @name="Paul Newman", @age=83, @sex="M", @filmography=["Cool Hand Luke", "Butch Cassidy and the Sundance Kid"]>

#<Actor:0x007f7c04da40d0 @name="Catherine Keener", @age=52, @sex="F", @filmography=["Being John Malkovich", "Capote"], @death_date="Jan 01 2011">

#<Actor:0x007f7c04ba3c40 @name="Kathy Pornstar", @age=24, @sex="F", @filmography=["Pono", "Capote"]>

使用以下代码,输出在项目之间没有空行:

living = actors.select{ |i| "\n"; i.death_date.nil?}
puts "#{living}"

输出:

[#<Actor:0x007f7c04da41c0 @name="Paul Newman", @age=83, @sex="M", @filmography=["Cool Hand Luke", "Butch Cassidy and the Sundance Kid"]>, #<Actor:0x007f7c04ba3c40 @name="Kathy Pornstar", @age=24, @sex="F", @filmography=["Pono", "Capote"]>]

如何使输出在项目之间有空行?任何格式化/重新格式化都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

我认为通过&#34; space&#34;,你的意思是一个空行。

display之间有空行的原因是因为你有两个puts,以错误的方式使用。它将简化为:

display = actors.each do |i|
  puts i.inspect, nil
end

living,你可以这样做:

living.each do |e|
  puts e.inspect, nil
end

答案 1 :(得分:-1)

假设您想在另一条线上打印living中的每个演员,您可以执行以下操作:

living.each do |actor|
  puts actor
end

这会回答你的问题吗?