gpt4 book ai didi

ruby - 从 ruby​​ 中的一个类的所有对象返回属性

转载 作者:数据小太阳 更新时间:2023-10-29 08:23:12 24 4
gpt4 key购买 nike

我对 Ruby(和一般编程)还很陌生,但我认为有一种方法可以调用所有类对象的属性?

    class Player
attr_reader :number

def initialize(name, number)
@name = name
@number = number
end

def self.all_numbers
[] << Player.each {|person| person.number}
end
end

guy1 = Player.new('Bill', 23)
guy2 = Player.new('jeff', 18)

我只想通过调用类来访问所有对象的数字..

   Player.all_numbers

希望回来..

    [23, 18]

最佳答案

您现在遇到的问题是 Player 是您的自定义类。它不响应类方法 each。另一个问题是 Player 类不知道在它之外创建的实例。

有很多方法可以解决这个问题。我这样做的方法是像这样实现另一个名为 Team 的类

class Team
def initialize(*players)
@players = players
end

def player_numbers
@players.map { |player| player.number }
end
end

class Player
attr_reader :number

def initialize(name, number)
@name = name
@number = number
end
end

guy1 = Player.new('Bill', 23)
guy2 = Player.new('jeff', 18)

team = Team.new(guy1, guy2)
team.player_numbers
#=> [23, 18]

关于ruby - 从 ruby​​ 中的一个类的所有对象返回属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20688733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com