Как получить и изменить значение переменной вне метода? - PullRequest
0 голосов
/ 24 декабря 2018

Я хочу изменить переменную, создав метод.Пример:

a = 0

def increase1
  a += 1
  puts a
end

increase1

При запуске этого кода я получаю undefined method `+' for nil:NilClass (NoMethodError) ошибку.Я предполагаю, что переменная a не может прочитать increase1 метод, и a становится nil.Есть ли способ справиться с этим?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Фактически, a не определено в increase.

Попробуйте:

a = 0

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

increase1(a)

Надеюсь, это полезно для вас.:)

0 голосов
/ 24 декабря 2018

Нет, нет способа изменить локальную переменную в другой области.Вот почему локальные переменные называются «локальными» переменными: потому что они локальны для области, в которой они определены. Ваши два a являются двумя совершенно разными локальными переменными в двух совершенно разных областях, которые не имеют ничего общего друг с другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...