模块及全局变量疑惑

Main 是顶层模块,当 julia 启动时,也是当前模块

const 是将全局变量声明为常量

const x = 5
a = 10
names(Main)


"""
isconst函数为:模块中全局变量是否声明为const
"""

@show isconst(Main,Symbol(x))
@show isconst(Main,Symbol(a))

#都是 false

是我哪里理解错了?

const x = 5

isconst(Main, Symbol(x)) # false, because it is Symbol("5")
isconst(Main, :x) # true, this is the actual variable x

另外准确地说,const并不是设置为常量,而是设置为固定类型的变量。

1 个赞

问题在于你对Symbol的理解。