小编bhp*_*bhp的帖子

如何在不计算重新分配的情况下计算类的实例?

我正在研究类方法。

我正在尝试计算一个类的创建实例的数量。我可以通过在initialize方法中创建一个计数器变量来做到这一点。

当我重新分配最初分配给一个类实例的变量时,就会出现问题。由于该initialize方法被调用两次,因此它无法识别该变量只是被重新分配给另一个类实例。

class Ticket
    attr_accessor :price
    attr_reader :event, :venue

    @@count = 0
    @@tickets = {}

    def initialize(event, venue)
        @event = event
        @venue = venue

        @@count += 1
    end

    def self.count
        @@count 
    end
end

a = Ticket.new("Michael Buble", "Staples")

a = Ticket.new("Frank Sinatra", "Madison Square Garden")

puts "Ticket count of #{Ticket.count}"
Run Code Online (Sandbox Code Playgroud)

当我在 IRB 中运行上述代码时,它给了我一个Ticket count of 2(如预期的那样)。如何更改我的代码以使其识别覆盖?

注意:我知道这个问题之前已经针对 Objective C 提出过,但是问题的重新分配方面为问题添加了不同的元素。否则请告诉我。

ruby methods class instances

1
推荐指数
1
解决办法
4564
查看次数

标签 统计

class ×1

instances ×1

methods ×1

ruby ×1