core 包是标准库的核心包,提供了适用仓颉语言编程最基本的一些 API 能力。
提供了内置类型(有符号整型、无符号整型、浮点型等)、常用函数(print、println、eprint 等)、常用接口(ToString、Hashable、Equatable、Collection 等)、常用类和结构体(Array、String、Range 等)、常用异常类(Error、Exception 以及它们的一些细分子类)。
说明:
core 包不需要显式导入,默认导入。
函数名 | 功能 |
CJ_CORE_AddAtexitCallback(() -> Unit) | 注册退出函数,当前进程退出时执行该函数。 |
CJ_CORE_ExecAtexitCallbacks() | 执行注册的退出函数,执行到此函数直接结束当前进程。 |
acquireArrayRawData(Array<T>) where T <: CType | 获取 Array<T> 中数据的原始指针实例,T 需要满足 CType 约束。 |
alignOf<T>() where T <: CType | 获取类型 T 的内存对齐值。 |
eprint(String, Bool) | 用于打印错误消息。 |
eprintln(String) | 用于打印错误消息,末尾添加换行。 |
ifNone(Option<T>, () -> Unit) | 如果输入是 Option.None 类型数据,则执行 action 函数。 |
ifSome(Option<T>, (T) -> Unit) | 如果输入是 Option.Some 类型数据,则执行 action 函数。 |
print(Bool, Bool) | 向控制台输出 Bool 类型数据的字符串表达。 |
print(Float16, Bool) | 向控制台输出 Float16 类型数据的字符串表达。 |
print(Float32, Bool) | 向控制台输出 Float32 类型数据的字符串表达。 |
print(Float64, Bool) | 向控制台输出 Float64 类型数据的字符串表达。 |
print(Int16, Bool) | 向控制台输出 Int16 类型数据的字符串表达。 |
print(Int32, Bool) | 向控制台输出 Int32 类型数据的字符串表达。 |
print(Int64, Bool) | 向控制台输出 Int64 类型数据的字符串表达。 |
print(Int8, Bool) | 向控制台输出 Int8 类型数据的字符串表达。 |
print(Rune, Bool) | 向控制台输出 Rune 类型数据的字符串表达。 |
print(String, Bool) | 向控制台输出指定字符串。 |
print(UInt16, Bool) | 向控制台输出 UInt16 类型数据的字符串表达。 |
print(UInt32, Bool) | 向控制台输出 UInt32 类型数据的字符串表达。 |
print(UInt64, Bool) | 向控制台输出 UInt64 类型数据的字符串表达。 |
print(UInt8, Bool) | 向控制台输出 UInt8 类型数据的字符串表达。 |
print<T>(T, Bool) where T <: ToString | 向控制台输出 T 类型实例的字符串表示。 |
println() | 向标准输出(stdout)输出换行符。 |
println(Bool) | 向控制台输出 Bool 类型数据的字符串表达,末尾添加换行。 |
println(Float16) | 向控制台输出 Float16 类型数据的字符串表达,末尾添加换行。 |
println(Float32) | 向控制台输出 Float32 类型数据的字符串表达,末尾添加换行。 |
println(Float64) | 向控制台输出 Float64 类型数据的字符串表达,末尾添加换行。 |
println(Int16) | 向控制台输出 Int16 类型数据的字符串表达,末尾添加换行。 |
println(Int32) | 向控制台输出 Int32 类型数据的字符串表达,末尾添加换行。 |
println(Int64) | 向控制台输出 Int64 类型数据的字符串表达,末尾添加换行。 |
println(Int8) | 向控制台输出 Int8 类型数据的字符串表达,末尾添加换行。 |
println(Rune) | 向控制台输出 Rune 类型数据的字符串表达,末尾添加换行。 |
println(String) | 向控制台输出指定字符串,末尾添加换行。 |
println(UInt16) | 向控制台输出 UInt16 类型数据的字符串表达,末尾添加换行。 |
println(UInt32) | 向控制台输出 UInt32 类型数据的字符串表达,末尾添加换行。 |
println(UInt64) | 向控制台输出 UInt64 类型数据的字符串表达,末尾添加换行。 |
println(UInt8) | 向控制台输出 UInt8 类型数据的字符串表达,末尾添加换行。 |
println<T>(T) where T <: ToString | 向控制台输出 T 类型实例的字符串表示,末尾添加换行。 |
refEq(Object, Object) | 判断两个 Object 实例的内存地址是否相同。 |
releaseArrayRawData(CPointerHandle<T>) where T <: CType | 释放原始指针实例,该实例通过 acquireArrayRawData 获取。 |
sizeOf<T>() where T <: CType | 获取类型 T 所占用的内存空间大小。 |
zeroValue<T>() | 获取一个已全零初始化的 T 类型实例。 |
类型别名 | 功能 |
Byte | Byte 类型是内置类型 UInt8 的别名。 |
Int | Int 类型是内置类型 Int64 的别名。 |
UInt | UInt 类型是内置类型 UInt64 的别名。 |
内置类型名 | 功能 |
Int8 | 表示 8 位有符号整型,表示范围为 [-2^7, 2^7 - 1]。 |
Int16 | 表示 16 位有符号整型,表示范围为 [-2^{15}, 2^{15} - 1]。 |
Int32 | 表示 32 位有符号整型,表示范围为 [-2^{31}, 2^{31} - 1]。 |
Int64 | 表示 64 位有符号整型,表示范围为 [-2^{63}, 2^{63} - 1]。 |
IntNative | 表示平台相关的有符号整型,其长度与当前系统的位宽一致。 |
UInt8 | 表示 8 位无符号整型,表示范围为 [0 ~ 2^8 - 1]。 |
UInt16 | 表示 16 位无符号整型,表示范围为 [0 ~ 2^{16} - 1]。 |
UInt32 | 表示 32 位无符号整型,表示范围为 [0 ~ 2^{32} - 1]。 |
UInt64 | 表示 64 位无符号整型,表示范围为 [0 ~ 2^{64} - 1]。 |
UIntNative | 表示平台相关的无符号整型,其长度与当前系统的位宽一致。 |
Float16 | 表示 16 位浮点数,符合 IEEE 754 中的半精度格式(binary16 )。 |
Float32 | 表示 32 位浮点数,符合 IEEE 754 中的单精度格式(binary32 )。 |
Float64 | 表示 64 位浮点数,符合 IEEE 754 中的双精度格式(binary64 )。 |
Bool | 表示布尔类型,有 true 和 false 两种取值。 |
Rune | 表示 unicode 字符集中的字符。 |
Unit | 表示仓颉语言中只关心副作用而不关心值的表达式的类型。 |
CPointer<T> | 表示 T 类型实例的指针,在与 C 语言互操作的场景下使用,对应 C 语言的 T* 。 |
CString | 表示 C 风格字符串,在与 C 语言互操作的场景下使用。 |