从同一个类中的另一个方法访问变量

时间:2015-08-13 11:32:27

标签: ruby oop variables

我正在尝试从" countX"访问变量b方法" printX"方法,但它总是给出错误,就像变量没有范围。我有点可以看出自己是什么问题,但是真的不知道如何解决这个问题。我只是希望能够从第二种方法访问我的变量b,我想它必须对我在前一种方法中如何命名它做些什么。给出的错误是:未定义的局部变量或方法`b' ..关闭主题,我知道这在同一方法中更容易完成,但我试图用这种方式练习,所以即使它不是最好的方式,我想完成它

class Countin
    def initialize(text)
        @text = text

        def countX
            a = @text.split(/\W+/)          
            b = Hash.new(0)
            a.each do |v|
                b[v] += 1
            end
        end

        def printX
            b.each do |k, v|
                puts "#{k} appears #{v} times"
            end
        end
    end
end

1 个答案:

答案 0 :(得分:4)

您需要创建一个对象变量

    class Countin
        def initialize(text)
            @text = text

            def countX
                a = @text.split(/\W+/)          
                @b = Hash.new(0)
                a.each do |v|
                    @b[v] += 1
                end
            end

            def printX
                @b.each do |k, v|
                    puts "#{k} appears #{v} times"
                end
            end
        end 
end