关于变量的一些疑惑

新手一枚,最近在研读官方文档的变量范围一章,对于global 一个变量有些不解的地方,code如下,相关的疑惑已经在注释中体现出来,还请高手赐教:多谢啦

julia> p = 5

julia>  module A
           global p    
           a = p
           end

ERROR: UndefVarError: p not defined

julia>  module A
           global p = 2   //  为什么必须要赋值??
           a = p
           end

julia> A.a
2

julia> p   //  p值没有变化
5

julia> for i = 1:3
           global p  //  这里不需要赋值了
           p = i
       end

julia> p  //  p值变了
3

每个 module 都有独立的 global scope,这也是 module 的主要作用之一,隔离命名空间, REPL 默认是在 Main 这个 module 里执行代码。

1 个赞