gpt4 book ai didi

ruby - 如何在 Ruby 中为类变量编写编写器方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:23 25 4
gpt4 key购买 nike

我正在研究 Ruby,我的大脑突然卡住了。

在下面的代码中,我将如何编写“self.total_people”的类编写器方法?我正在尝试“计算”类“Person”的实例数。

    class Person

attr_accessor :name, :age

@@nationalities = ['French', 'American', 'Colombian', 'Japanese', 'Russian', 'Peruvian']

@@current_people = []

@@total_people = 0

def self.nationalities #reader
@@nationalities
end

def self.nationalities=(array=[]) #writer
@@nationalities = array
end

def self.current_people #reader
@@current_people
end

def self.total_people #reader
@@total_people
end

def self.total_people #writer
#-----?????
end



def self.create_with_attributes(name, age)
person = self.new(name)
person.age = age
person.name = name
return person
end


def initialize(name="Bob", age=0)
@name = name
@age = age
puts "A new person has been instantiated."
@@total_people =+ 1
@@current_people << self
end

最佳答案

您可以通过将等号附加到方法名称的末尾来定义一个:

def self.total_people=(v)
@@total_people = v
end

您将所有实例都放在@@current_people 中,您可以更准确地定义 total_people:

def self.total_people
@@current_people.length
end

并删除所有与@@total_people 相关的代码。

关于ruby - 如何在 Ruby 中为类变量编写编写器方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2827875/

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