Как получить доступ к глобальным переменным внутри функций - PullRequest
2 голосов
/ 31 мая 2019

У меня следующий простой код:

line = "Hello"

def myfn()
    puts line
end

myfn()

Переменная line недоступна в функции.Как получить доступ к глобальным переменным внутри функций?

Ответы [ 2 ]

3 голосов
/ 03 июня 2019

Вы можете создать модуль с переменной класса, если вам необходимо глобальное состояние .

module Foo
  extend self

  @@line = "Hello"

  def myfn
    puts @@line
  end
end

Foo.myfn
2 голосов
/ 31 мая 2019

Вы можете сделать его константой с помощью заглавных букв.

LINE = "Hello"

def myfn()
    puts LINE
end

myfn()

Если вы хотите, чтобы он был переменным, передайте его в качестве аргумента, для этого они и нужны.

line = "Hello"

def myfn(msg)
    puts msg
end

myfn(line)
...