如何列出 Julia 的所有内部变量?
How to list all of Julia's internal variables?
Julia 有许多内部变量,例如 WORD_SIZE(指示目标系统是 32 位还是 64 位)和 CPU_CORES(目前可用的 cpu 内核数) .
在 Julia REPL 中,有什么方法可以列出所有这些内部变量吗?
据我所知,whos
和 names(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)
Julia 有许多内部变量,例如 WORD_SIZE(指示目标系统是 32 位还是 64 位)和 CPU_CORES(目前可用的 cpu 内核数) .
在 Julia REPL 中,有什么方法可以列出所有这些内部变量吗?
据我所知,whos
和 names(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)