在ruby中查找类中的最大值

在ruby中查找类中的最大值,ruby,arrays,class,Ruby,Arrays,Class,我已经试了好几个小时了 我有这个密码,我有大约20个不同的人,有不同的年龄和名字 如何让ruby搜索所有年龄段,并将最高年龄段显示为和整数 我一直在寻找,但似乎无法使它工作。我甚至试着让它对数字进行排序,并在最后一个年龄打印,这一定是最高的数字 def initialize(firstname, familyname, age) @firstname = firstname @familyname = familyname @age = age 致以最诚挚的问候比如说,你的班级看起

我已经试了好几个小时了

我有这个密码,我有大约20个不同的人,有不同的年龄和名字

如何让ruby搜索所有年龄段,并将最高年龄段显示为和整数

我一直在寻找,但似乎无法使它工作。我甚至试着让它对数字进行排序,并在最后一个年龄打印,这一定是最高的数字

def initialize(firstname, familyname, age)
  @firstname = firstname
  @familyname = familyname
  @age = age

致以最诚挚的问候

比如说,你的班级看起来是这样的:

class Person
  attr_reader :firstname, :familyname, :age

  def initialize(firstname, familyname, age)
    @firstname = firstname
    @familyname = familyname
    @age = age
  end
end
class Person
  attr_accessor :age
  def initialize(age)
    @age = age
  end
end
people = [Person.new(10), Person.new(20), Person.new(30)]
假设你有一个叫做
人的数组。然后你可以做一些类似的事情:

puts people.max_by { |p| p.age }.age
使用
max

e、 g


如果您有这样一个类:

class Person
  attr_reader :firstname, :familyname, :age

  def initialize(firstname, familyname, age)
    @firstname = firstname
    @familyname = familyname
    @age = age
  end
end
class Person
  attr_accessor :age
  def initialize(age)
    @age = age
  end
end
people = [Person.new(10), Person.new(20), Person.new(30)]
和这样的数组:

class Person
  attr_reader :firstname, :familyname, :age

  def initialize(firstname, familyname, age)
    @firstname = firstname
    @familyname = familyname
    @age = age
  end
end
class Person
  attr_accessor :age
  def initialize(age)
    @age = age
  end
end
people = [Person.new(10), Person.new(20), Person.new(30)]
查找最大年龄

您可以通过以下方式获得年龄:

最大值为:

寻找最年长的人

或者你可以找到年龄最大的人,他有:


一旦使用中所示的技术之一将所有实例收集到一个数组中,就可以使用中所示的技术查找最长时间。例如,如果
Foo
是您的类,而
age
是您的类的一个属性,则以下操作应该有效:

ObjectSpace.each_object.select{|foo| obj.class == Foo}.max_by {|foo| foo.age}

您需要显示更多的代码,包括在何处/如何定义所有人员。另外,使用代码块的格式化机制(参见帮助)。可爱的答案是…:)
max_by
也可以使用方便的符号和符号<代码>人。最大年龄(&:年龄)