Ruby类实例变量未在方法调用之间清除:整数类

时间:2014-03-06 16:29:00

标签: ruby class instance-variables

我有一个作业的以下代码。经过大量调试后,我发现了正在发生的事情

class Integer
    def initialize()
      @ans = ""
    end

    def ans
      @ans = ""
    end

    def ans=(value)
      @ans = value
    end

    def to_base(base)
      # convert given number into the base
      # figure out how to make it the most efficient
      num = self
      r = 0
      loop do
        r = num % base              # modulus
        @ans = r.to_s + @ans.to_s   # add to answer
        num /= base                 # division 
        break unless num != 0
      end
      english = @ans                # return value
    end

    def to_oct
      self.to_base(8)
    end
end

puts 8.to_oct
puts 8.to_base(2)

输出:

10
100010

二进制版本的输出应为1000而不是100010 它所做的是将类8.to_oct的第一个实例附加到第二个调用8.to_base(2)

有没有办法将其清除,因为我想在此示例中使用相同的数字(8)并将其转换为各种基数。我班上做错了什么?

谢谢!

0 个答案:

没有答案