如何从方法外部获取和更改变量的值?

时间:2018-12-24 00:21:52

标签: ruby methods

我想通过创建方法来更改变量。一个例子是:

a = 0

def increase1
  a += 1
  puts a
end

increase1

运行此代码时,出现undefined method `+' for nil:NilClass (NoMethodError)错误。我猜变量a无法读取increase1方法,并且a变成nil。有什么办法可以解决这个问题?

2 个答案:

答案 0 :(得分:0)

否,无法在其他范围内更改局部变量。这就是为什么局部变量称为“局部”变量的原因:因为它们在定义它们的作用域内是局部的。您的两个a是两个完全不同的作用域中的两个完全不同的局部变量,它们彼此无关

答案 1 :(得分:0)

实际上,a中没有定义increase

尝试一下:

a = 0

def increase1(a)
   a +=1
   puts a
end

increase1(a)

我希望它对您有用。 :)