如何列出 Julia 的所有内部变量?

How to list all of Julia's internal variables?

Julia 有许多内部变量,例如 WORD_SIZE(指示目标系统是 32 位还是 64 位)和 CPU_CORES(目前可用的 cpu 内核数) .

在 Julia REPL 中,有什么方法可以列出所有这些内部变量吗?

据我所知,whosnames(Main) 没有显示它们...

编辑:从这个 中,我看到 names(Base) 确实显示了这些内部变量,以及 Base 模块中的所有其他导出项。

正如@DNF 在上面的评论中指出的那样,whos(Base.Sys) 不会打印 Base 中的所有 internal(constant) 变量。但我们可以通过

直接从 whos(Base) 搜索这些变量
julia> whos(Base, r"^\s*[A-Z_]+$")
                          ARGS      0 bytes  0-element Array{UTF8String,1}
                          BLAS    214 KB     Module
                     CPU_CORES      8 bytes  Int64
                        C_NULL      8 bytes  Ptr{Void}
                    ENDIAN_BOM      4 bytes  UInt32
                           ENV      0 bytes  Base.EnvHash with 29 entries
                          FFTW    149 KB     Module
                          HTML    168 bytes  DataType
                             I      8 bytes  UniformScaling{Int64}
                            IO     92 bytes  DataType
                    JULIA_HOME     66 bytes  ASCIIString
                        LAPACK    933 KB     Module
                     LOAD_PATH    190 bytes  2-element Array{ByteString,1}
                          MIME    148 bytes  DataType
                       OS_NAME      0 bytes  Symbol
                        STDERR    217 bytes  Base.TTY
                         STDIN     64 KB     Base.TTY
                        STDOUT    217 bytes  Base.TTY
                       VERSION     40 bytes  VersionNumber
                     WORD_SIZE      8 bytes  Int64

这是因为 Julia 的常量是大写的。您可能会发现一些 Module 也在列表中,但很容易识别。实际上,可以使用更复杂的正则表达式来驱逐它们。

注意,那些没有导出到Base的变量不会显示出来。例如

whos(Base.Libdl)