Julia有许多内部变量,例如WORD_SIZE(表示目标系统是32位还是64位)和CPU_CORES(目前可用的cpu核心数)。
在Julia REPL中,有没有办法列出所有这些内部变量?
AFAIK,whos
和names(Main)
没有显示它们......
编辑:从previous question on listing exported function names开始,我看到names(Base)
确实显示了这些内部变量,以及Base
模块中的所有其他导出项。
答案 0 :(得分:1)
正如@DNF在上面的评论中指出的那样,whos(Base.Sys)
不会在Base
中打印所有内部(常量)变量。但我们可以通过以下方式直接从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
这是因为朱莉娅的常数是大概的。您可能会发现某些模块也在列表中,但它很容易识别。实际上,人们可以使用更复杂的正则表达式驱逐它们。
请注意,那些未导出到Base
的变量将不会显示出来。 e.g。
whos(Base.Libdl)