我正在尝试从" 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
答案 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