天天看点

Julia语言 - 内置系统常量

常量 说明
Core.nothing 类型Void的单例对象,用于无值可返回等情况。该常量在打印时不会显示任何内容,可转为空的Nullable值。
Base.PROGRAM_FILE 命令行启动Julia时接收到的脚本文件路径,但通过Julia命令直接执行表达式时,例如julia -e <expr>,会返回nothing对象;在include文件中,该变量指该文件的绝对路径,并保持不变,也可使用宏@__FILE__获得其所处脚本的绝对路径。
Base.ARGS 包含通过命令行传递给Julia程序的参数列表,为字符串数组类型。
Base.C_NULL 对应于C语言中的空指针常量。
Base.VERSION

VersionNumber类型的常量,记录当前正使用的Julia版本号,包括主版本号(major)、次版本号(minor)与补丁版本号(patch),还有预发布(prerelease)及构建alpha说明信息。例如:

julia> Base.VERSION

v"1.0.0"

指当前Julia版本为1.0.0.

VersionNumber类型是一种特殊字符串,专门用于表达版本信息,例如:

julia> dump(v"0.2.1-rc1+win64")

VersionNumber

  major: Int64 0

  minor: Int64 2

  patch: Int64 1

  prerelease: Tuple{String}

    1: String "rc1"

  build: Tuple{String}

    1: String "win64"

其中major版本为0,minor版本为2,patch版本为1,prerelease信息为rc1,及构建信息为win64. 一般来说,除了major版本号,其他都是可选的。

VersionNumber的对象是可以相互比较的,例如:

julia> v"0.2" <= v"0.3-"

true

其中的“-”是Julia对标准规则的扩展,指的是要小于包括预发布的任意0.3发布版。

这种版本规则也用于Julia的包管理,可查阅资料以了解更多信息。

Base.LOAD_PATH 一个字符串数组常量,列出require函数、using或import命令加载对象或代码时的搜索目录。
Base.Sys.BINDIR 字符串常量,指向Julia可执行主程序所在目录的绝对路径。
Core.ANY

在多态分发中相当于Any类型,但会让编译器忽略其中的代码生成特例化(code generation specialization),其实际结构为:

TypeVar

  name: Symbol ANY

  lb: Core.TypeofBottom Union{}

  ub: Any

Base.Sys.CPU_THREADS 系统中可用逻辑内核(包括CPU物理内核及超线程)的数量。使用Hwloc.jl包能够获得关于CPU更多的信息,包括内存、缓存、网络、物理内核等。
Base.Sys.WORD_SIZE 当前机器运行环境的机器字节长度(比特数),目前大多是64位。
Base.Sys.KERNEL Symbol对象,记录着操作系统内核名,例如Windows 10中会返回:NT内容。
Base.Sys.ARCH Symbol对象,记录着系统架构。在64位PC系统中,一般为:x86_64。
Base.Sys.MACHINE 字符串对象,记录着Julia程序的构建信息。例如在Windows中,其内容类似于"x86_64-w64-mingw32"。
Base.stdout 标准输出流全局变量。
Base.stderr 标准错误流全局变量。
Base.stdin 标准输入流全局变量。
Base.ENV 一个Base.EnvHash类型的单例对象,以字典结构存储着操作系统的环境变量。
Base.ENDIAN_BOM 一个UInt32类型的数值,记录机器的字节顺序标记值。对于低字节序(Little-endian),其值为0x04030201,而对于高字节序(Big-endian),其值为0x01020304。
Base.DL_LOAD_PATH 字符串数组,记录着动态库的搜索路径。
Base.Libdl.dlext 字符串类型,记录着当前平台动态库文件的扩展名,例如dll、dylib或so等。
Base.devnull IO子类型Base.DevNull的常量,等效于Windows中的NUL或Linux/Unix中的/dev/null设备符,用于对流进行重定向,写入到其中的所有数据会被丢弃。