如何访问函数内部的全局变量

rns*_*nso 2 function crystal-lang

我有以下简单的代码:

line = "Hello"

def myfn()
    puts line
end

myfn()
Run Code Online (Sandbox Code Playgroud)

该变量line在函数中不可访问。如何在函数内部访问全局变量?

ale*_*dam 5

如果您需要“全局”状态,您可以创建带有类变量的模块

module Foo
  extend self

  @@line = "Hello"

  def myfn
    puts @@line
  end
end

Foo.myfn
Run Code Online (Sandbox Code Playgroud)