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