仓颉标准库速查指南 Skill
说明:本 Skill 仅用于速查目的,以表格形式列出各包的核心接口,方便快速定位 API。表格并未覆盖每个包的全部接口和细节信息,如果存在信息不足或接口遗漏,可以引用拆解标准库能力的特定 Skill,如果暂无相关细分 Skill,则请查阅标准库原始文档。
1. 概述
- 标准库(std)随 SDK 一起发布,开箱即用
- 核心包
std.core 自动导入,无需显式 import
- 其他包使用
import std.xxx.* 导入
import std.collection.* // 导入整个包
import std.collection.{ArrayList, HashMap} // 按需导入 API
2. 标准库包功能总表
| 包名 |
功能简介 |
| core |
核心包(自动导入)。基本类型(Int/Float/Bool/String/Array/Range/Option 等)、print/println/readln、核心接口(Iterable/Comparable/Hashable/ToString 等)、Duration、Thread/Future/spawn、异常基类等 |
| collection |
集合数据结构:ArrayList、HashMap、HashSet、TreeMap、TreeSet、LinkedList、ArrayDeque、ArrayQueue、ArrayStack,以及 List/Map/Set 等接口和函数式迭代操作 |
| collection.concurrent |
并发安全集合:ConcurrentHashMap、ConcurrentLinkedQueue、ArrayBlockingQueue、LinkedBlockingQueue |
| io |
I/O 流抽象:InputStream/OutputStream 接口、缓冲流、StringReader/StringWriter、ByteBuffer 等 |
| fs |
文件系统:File 读写、Directory 操作、Path 处理、exists/copy/rename/remove 等 |
| env |
进程环境:标准流、环境变量读写、工作目录、进程 ID、exit 等 |
| net |
网络通信:TcpSocket/TcpServerSocket、UdpSocket、UnixSocket、IP 地址处理 |
| sync |
并发同步:Atomic 原子操作、Mutex 互斥锁、Monitor、Timer、SyncCounter |
| time |
时间日期:DateTime、Duration、MonoTime、TimeZone、格式化与解析 |
| math |
数学运算:三角函数、abs/sqrt/pow/log/ceil/floor、GCD/LCM 等 |
| math.numeric |
扩展数值:BigInt(任意精度整数)、Decimal(任意精度十进制数) |
| random |
伪随机数:Random 类 |
| regex |
正则表达式:Regex 类,查找/分割/替换/验证 |
| sort |
排序:对 Array/ArrayList 进行稳定/不稳定排序 |
| convert |
类型转换与格式化:Parsable(字符串→数值)、Formattable(格式化输出) |
| process |
进程管理:execute/launch 创建子进程、等待与信息查询 |
| reflect |
反射:TypeInfo 获取类型信息、动态访问成员 |
| ast |
语法树:源码解析器和 AST 节点,用于宏编程 |
| argopt |
命令行参数解析:parseArguments 函数,短/长/组合选项 |
| binary |
二进制端序转换:BigEndianOrder/LittleEndianOrder |
| crypto.digest |
摘要算法:MD5、SHA 系列、HMAC、SM3 |
| crypto.cipher |
对称加解密通用接口 |
| database.sql |
数据库接口:连接、查询、事务 |
| deriving |
自动派生宏:@Derive 生成 ToString/Hashable/Equatable/Comparable |
| unicode |
Unicode 字符处理 |
| overflow |
整数溢出处理(Option/饱和/异常/截断) |
| ref |
弱引用:WeakRef 类 |
| objectpool |
对象池:ObjectPool 缓存与复用 |
| posix |
POSIX 系统调用封装 |
| runtime |
运行时环境控制与监视 |
| console |
⚠️ 已弃用,请用 std.env |
| unittest |
单元测试框架(详见 unittest Skill) |
| unittest.mock |
Mock 测试框架 |
| unittest.testmacro |
单元测试宏 |
| unittest.mock.mockmacro |
Mock 框架宏 |
| unittest.common |
单元测试通用类型 |
| unittest.diff |
测试差异对比 |
| unittest.prop_test |
参数化测试 |
3. core — 核心包(自动导入)
3.1 核心接口
| 接口 |
关键方法 |
说明 |
Any |
— |
所有类型的父接口 |
ToString |
toString(): String |
字符串表示 |
Hashable |
hashCode(): Int64 |
哈希值 |
Hasher |
write(Int64), finish(): Int64 |
哈希计算器 |
Equatable<T> |
==(T): Bool, !=(T): Bool |
相等比较 |
Equal<T> / NotEqual<T> |
==(T): Bool / !=(T): Bool |
单向相等比较 |
Comparable<T> |
compare(T): Ordering, <, >, <=, >= |
大小比较(核心方法为 compare) |
Less<T> / Greater<T> |
<(T): Bool / >(T): Bool |
单向大小比较 |
LessOrEqual<T> / GreaterOrEqual<T> |
<=(T): Bool / >=(T): Bool |
单向大小比较 |
Iterable<E> |
iterator(): Iterator<E> |
支持 for-in 迭代 |
Collection<T> |
size: Int64, isEmpty(): Bool, toArray(): Array<T> |
集合基础 |
Resource |
isClosed(): Bool, close(): Unit |
try-with-resources |
Countable<T> |
next(Int64): T, position(): Int64 |
可计数类型(用于 Range) |
ThreadContext |
— |
线程上下文标记 |
CType |
— |
可与 C 交互的类型标记 |
3.2 核心类型
| 类型 |
说明 |
Int8/Int16/Int32/Int64 |
有符号整数(Int = Int64) |
UInt8/UInt16/UInt32/UInt64 |
无符号整数(Byte = UInt8,UInt = UInt64) |
IntNative/UIntNative |
平台相关的整数 |
Float16/Float32/Float64 |
浮点数 |
Bool |
true / false |
Unit |
表示无操作 |
Rune |
Unicode 字符 |
String |
UTF-8 字符串 |
Array<T> |
固定长度的数组 |
Range<T> |
区间,数值/字符范围 |
Option<T> |
可空类型包装,Some(T) / None,等效写法 ?T |
Ordering |
比较大小,LT / EQ / GT |
Endian |
字节序,Big / Little |
Duration |
表示时间间隔 |
DefaultHasher |
默认哈希计算器 |
StringBuilder |
高效字符串拼接 |
Object |
所有 class 类型的父类 |
Iterator<T> |
迭代器接口 |
Box<T> |
值类型装箱 |
Future<T> |
spawn 表达式的返回类型,表示一个异步执行任务 |
Thread |
线程信息 |
ThreadLocal<T> |
线程本地存储 |
StackTraceElement |
异常栈帧信息 |
CString |
C 字符串包装,原始堆存储,用于 CFFI |
CPointer<T> |
C 指针包装,用于 CFFI |
CPointerHandle<T> |
C 指针管理器,用于 CFFI |
3.3 String 常用方法
| 方法 |
签名 |
说明 |
size |
size: Int64 |
字节长度 |
isEmpty |
isEmpty(): Bool |
是否为空字符串 |
contains |
contains(String): Bool |
是否包含子串 |
startsWith |
startsWith(String): Bool |
是否以指定前缀开头 |
endsWith |
endsWith(String): Bool |
是否以指定后缀结尾 |
indexOf |
indexOf(String): Option<Int64> |
查找子串首次出现位置 |
lastIndexOf |
lastIndexOf(String): Option<Int64> |
查找子串最后出现位置 |
count |
count(String): Int64 |
统计子串出现次数 |
split |
split(String, removeEmpty!: Bool = false): Array<String> |
按分隔符拆分 |
lazySplit |
lazySplit(String, removeEmpty!: Bool = false): Iterator<String> |
惰性拆分 |
replace |
replace(String, String): String |
替换子串 |
trimAscii |
trimAscii(): String |
去除首尾 ASCII 空白 |
trimAsciiStart |
trimAsciiStart(): String |
去除开头 ASCII 空白 |
trimAsciiEnd |
trimAsciiEnd(): String |
去除结尾 ASCII 空白 |
removePrefix |
removePrefix(String): String |
去除前缀 |
removeSuffix |
removeSuffix(String): String |
去除后缀 |
toAsciiUpper |
toAsciiUpper(): String |
ASCII 转大写 |
toAsciiLower |
toAsciiLower(): String |
ASCII 转小写 |
equalsIgnoreAsciiCase |
equalsIgnoreAsciiCase(String): Bool |
ASCII 大小写不敏感比较 |
padStart |
padStart(Int64, padding!: String = " "): String |
左填充至指定宽度 |
padEnd |
padEnd(Int64, padding!: String = " "): String |
右填充至指定宽度 |
lines |
lines(): Iterator<String> |
按行迭代 |
toArray |
toArray(): Array<Byte> |
转为字节数组 |
* |
*(Int64): String |
重复字符串 n 次 |
[] |
[Range<Int64>]: String |
按字节范围切片 |
3.4 Option 常用方法
| 方法 |
签名 |
说明 |
isSome |
isSome(): Bool |
是否为 Some |
isNone |
isNone(): Bool |
是否为 None |
getOrDefault |
getOrDefault(() -> T): T |
获取值或执行默认闭包 |
getOrThrow |
getOrThrow(): T |
获取值或抛 NoneValueException |
3.5 常用全局函数
I/O 函数
| 函数 |
签名 |
说明 |
print |
print(String), print<T>(T) where T <: ToString |
输出(不换行) |
println |
println(), println(String), println<T>(T) where T <: ToString |
输出(换行) |
eprint |
eprint(String), eprint<T>(T) where T <: ToString |
输出到 stderr |
eprintln |
eprintln(String), eprintln<T>(T) where T <: ToString |
输出到 stderr(换行) |
readln |
readln(): String |
读取一行标准输入 |
数学函数
| 函数 |
签名 |
说明 |
min |
min<T>(T, T, Array<T>): T where T <: Comparable<T> |
返回较小值(支持多参数) |
max |
max<T>(T, T, Array<T>): T where T <: Comparable<T> |
返回较大值(支持多参数) |
并发函数
| 函数 |
签名 |
说明 |
sleep |
sleep(Duration): Unit |
当前线程休眠 |
spawn |
spawn { => ... } |
创建新线程,返回 Future<T> |
synchronized |
synchronized(lock) { ... } |
自动加锁/解锁的临界区 |
工具函数
| 函数 |
签名 |
说明 |
refEq |
refEq(Object, Object): Bool |
引用相等比较 |
sizeOf |
sizeOf<T>(): Int64 |
获取类型大小 |
alignOf |
alignOf<T>(): Int64 |
获取类型对齐 |
zeroValue |
zeroValue<T>(): T |
获取类型零值 |
3.6 异常层次
Error(系统错误,不应捕获)
| 异常类型 |
说明 |
OutOfMemoryError |
内存不足 |
StackOverflowError |
栈溢出 |
Exception(可捕获处理)
| 异常类型 |
说明 |
ArithmeticException |
算术运算错误(如除零) |
IllegalArgumentException |
非法参数 |
IllegalFormatException |
格式化字符串错误 |
IllegalMemoryException |
非法内存访问 |
IllegalStateException |
非法状态 |
IncompatiblePackageException |
包不兼容 |
IndexOutOfBoundsException |
索引越界 |
NegativeArraySizeException |
数组大小为负 |
NoneValueException |
访问 None 值 |
OverflowException |
溢出 |
SpawnException |
线程创建异常 |
UnsupportedException |
不支持的操作 |
TimeoutException |
超时 |
3.7 Duration 常用单位
| 单位 |
构造示例 |
Duration.nanosecond |
500 * Duration.nanosecond |
Duration.microsecond |
100 * Duration.microsecond |
Duration.millisecond |
200 * Duration.millisecond |
Duration.second |
Duration.second * 5 |
Duration.minute |
Duration.minute * 10 |
Duration.hour |
Duration.hour * 2 |
3.8 StringBuilder
| 方法 |
签名 |
说明 |
init |
StringBuilder() |
构造空 Builder |
append |
append(String): Unit |
追加字符串(也支持 Rune/Bool/整数/浮点/Array<Rune>/CString/ToString) |
toString |
toString(): String |
转为 String |
4. collection — 集合
导入:import std.collection.*
4.1 集合类型
| 类型 |
构造函数 |
说明 |
ArrayList<T> |
ArrayList<T>(), ArrayList<T>(Int64), ArrayList<T>(Collection<T>), ArrayList<T>(Int64, (Int64) -> T) |
动态数组 |
HashMap<K, V> |
HashMap<K, V>(), HashMap<K, V>(Int64), HashMap<K, V>(Array<(K, V)>), HashMap<K, V>(Int64, (Int64) -> (K, V)) |
哈希映射(K <: Hashable & Equatable<K>) |
HashSet<T> |
HashSet<T>(), HashSet<T>(Int64), HashSet<T>(Collection<T>), HashSet<T>(Int64, (Int64) -> T) |
哈希集合(T <: Hashable & Equatable<T>) |
TreeMap<K, V> |
TreeMap<K, V>(), TreeMap<K, V>(Array<(K, V)>), TreeMap<K, V>(Int64, (Int64) -> (K, V)) |
红黑树有序映射(K <: Comparable<K>) |
TreeSet<T> |
TreeSet<T>(), TreeSet<T>(Collection<T>), TreeSet<T>(Int64, (Int64) -> T) |
红黑树有序集合(T <: Comparable<T>) |
LinkedList<T> |
LinkedList<T>(), LinkedList<T>(Collection<T>), LinkedList<T>(Int64, (Int64) -> T) |
双向链表 |
ArrayDeque<T> |
ArrayDeque<T>(), ArrayDeque<T>(Int64) |
双端队列 |
ArrayQueue<T> |
ArrayQueue<T>(), ArrayQueue<T>(Int64) |
环形队列 |
ArrayStack<T> |
ArrayStack<T>(), ArrayStack<T>(Int64) |
栈 |
4.2 集合接口
| 接口 |
关键方法 |
Collection<T> |
size, isEmpty(), toArray() |
List<T> |
get(Int64), set(Int64, T), add(T), remove(at: Int64) |
ReadOnlyList<T> |
get(Int64), size |
Map<K, V> |
get(K), add(K, V), contains(K), remove(K) |
ReadOnlyMap<K, V> |
get(K), contains(K), size |
Set<T> |
add(T), contains(T), remove(T) |
ReadOnlySet<T> |
contains(T), size |
Queue<T> |
enqueue(T), dequeue() |
Deque<T> |
addFirst(T), addLast(T), removeFirst(), removeLast() |
Stack<T> |
push(T), pop(), top() |
OrderedMap<K, V> |
有序映射接口 |
OrderedSet<T> |
有序集合接口 |
EquatableCollection<T> |
支持相等比较的集合 |
4.3 函数式迭代操作(应用于 Iterator<T>)
过滤与转换
| 函数 |
签名 |
说明 |
filter |
filter(predicate: (T) -> Bool): Iterator<T> |
过滤元素 |
map |
map<R>(transform: (T) -> R): Iterator<R> |
转换元素 |
flatMap |
flatMap<R>(transform: (T) -> Iterator<R>): Iterator<R> |
转换并展平 |
flatten |
flatten(): Iterator<T> |
展平嵌套迭代器 |
inspect |
inspect(action: (T) -> Unit): Iterator<T> |
不修改元素的调试操作 |
聚合与查询
| 函数 |
签名 |
说明 |
fold |
fold<R>(initial: R, operation: (R, T) -> R): R |
累积计算(带初始值) |
reduce |
reduce(operation: (T, T) -> T): Option<T> |
累积计算(无初始值) |
forEach |
forEach(action: (T) -> Unit): Unit |
遍历执行 |
count |
count(): Int64 |
计数 |
any / all / none |
any(predicate: (T) -> Bool): Bool |
谓词检查 |
first / last |
first(): Option<T> |
首/尾元素 |
迭代控制
| 函数 |
签名 |
说明 |
take / skip |
take(count: Int64): Iterator<T> |
取前 n 个 / 跳过前 n 个 |
step |
step(count: Int64): Iterator<T> |
按步长取元素 |
enumerate |
enumerate(): Iterator<(Int64, T)> |
带索引遍历 |
zip |
zip<R>(Iterator<R>): Iterator<(T, R)> |
配对两个迭代器 |
concat |
concat(Iterator<T>): Iterator<T> |
连接两个迭代器 |
收集函数
| 函数 |
签名 |
说明 |
collectArray |
collectArray<T>(Iterable<T>): Array<T> |
收集为 Array |
collectArrayList |
collectArrayList<T>(Iterable<T>): ArrayList<T> |
收集为 ArrayList |
collectHashMap |
collectHashMap<K, V>(Iterable<(K, V)>): HashMap<K, V> |
收集为 HashMap |
collectHashSet |
collectHashSet<T>(Iterable<T>): HashSet<T> |
收集为 HashSet |
collectString |
collectString(Iterable<String>): String |
收集为 String |
5. collection.concurrent — 并发安全集合
导入:import std.collection.concurrent.*
| 类型 |
构造函数 |
关键方法 |
ConcurrentHashMap<K, V> |
ConcurrentHashMap<K, V>() (K <: Hashable & Equatable<K>) |
add(K, V), get(K): ?V, contains(K), remove(K) |
ConcurrentLinkedQueue<T> |
ConcurrentLinkedQueue<T>() |
add(T), remove(): ?T, peek(): ?T |
ArrayBlockingQueue<T> |
ArrayBlockingQueue<T>(Int64) |
add(T), remove(): T(阻塞) |
LinkedBlockingQueue<T> |
LinkedBlockingQueue<T>() |
add(T), remove(): T(阻塞) |
6. io — I/O 流
导入:import std.io.*
6.1 接口
| 接口 |
关键方法 |
说明 |
InputStream |
read(Array<Byte>): Int64 |
输入流 |
OutputStream |
write(Array<Byte>): Unit, flush(): Unit |
输出流 |
IOStream |
继承 InputStream + OutputStream |
双向流 |
Seekable |
seek(SeekPosition): Int64 |
可定位流 |
6.2 类
| 类 |
构造函数 |
说明 |
BufferedInputStream<T> |
BufferedInputStream<T>(T) |
缓冲输入流 |
BufferedOutputStream<T> |
BufferedOutputStream<T>(T) |
缓冲输出流 |
StringReader<T> |
StringReader<T>(T) |
字符串级别读取:readln(): ?String, readToEnd(): String |
StringWriter<T> |
StringWriter<T>(T) |
字符串级别写入:write(String), writeln(String) |
ByteBuffer |
ByteBuffer(Int64) |
字节缓冲区 |
ChainedInputStream |
ChainedInputStream(Array<InputStream>) |
串联多个输入流 |
MultiOutputStream |
MultiOutputStream(Array<OutputStream>) |
同时写入多个输出流 |
7. fs — 文件系统
导入:import std.fs.*
7.1 全局函数
| 函数 |
签名 |
说明 |
exists |
exists(String): Bool |
检查路径是否存在 |
copy |
copy(String, to!: String, overwrite!: Bool = false): Unit |
复制文件 |
rename |
rename(String, to!: String, overwrite!: Bool = false): Unit |
重命名/移动 |
remove |
remove(String, recursive!: Bool = false): Unit |
删除文件或目录 |
canonicalize |
canonicalize(String): Path |
获取规范化绝对路径 |
7.2 File
| 方法 |
签名 |
说明 |
| 构造 |
File(String, OpenMode), File(Path, OpenMode) |
打开文件 |
readFrom |
File.readFrom(String): Array<Byte> |
快捷读文件 |
writeTo |
File.writeTo(String, Array<Byte>): Unit |
快捷写文件 |
打开模式:OpenMode.Read | OpenMode.Write | OpenMode.Append | OpenMode.ReadWrite
7.3 Directory
| 方法 |
签名 |
说明 |
create |
Directory.create(String, recursive!: Bool = false) |
创建目录 |
list |
Directory.list(String): Array<FileInfo> |
列出目录内容 |
delete |
Directory.delete(String) |
删除空目录 |
7.4 其他类型
| 类型 |
说明 |
Path |
路径处理(拼接、分解、扩展名等) |
FileInfo |
文件元信息(大小、时间、权限等) |
FileDescriptor |
文件描述符 |
8. env — 进程环境
导入:import std.env.*
8.1 标准流
| 函数 |
签名 |
说明 |
getStdIn |
getStdIn(): ConsoleReader |
标准输入 |
getStdOut |
getStdOut(): ConsoleWriter |
标准输出 |
getStdErr |
getStdErr(): ConsoleWriter |
标准错误 |
8.2 环境变量
| 函数 |
签名 |
说明 |
getVariable |
getVariable(String): ?String |
读取环境变量 |
setVariable |
setVariable(String, String): Unit |
设置环境变量 |
removeVariable |
removeVariable(String): Unit |
删除环境变量 |
getVariables |
getVariables(): Array<(String, String)> |
获取所有环境变量 |
8.3 目录与路径
| 函数 |
签名 |
说明 |
getWorkingDirectory |
getWorkingDirectory(): Path |
当前工作目录 |
getHomeDirectory |
getHomeDirectory(): Path |
用户主目录 |
getTempDirectory |
getTempDirectory(): Path |
临时目录 |
8.4 进程信息与控制
| 函数 |
签名 |
说明 |
getCommand |
getCommand(): String |
当前可执行文件路径 |
getCommandLine |
getCommandLine(): Array<String> |
命令行参数 |
getProcessId |
getProcessId(): Int64 |
进程 ID |
atExit |
atExit(() -> Unit): Unit |
注册进程退出回调 |
exit |
exit(Int64): Nothing |
退出进程 |
9. net — 网络通信
导入:import std.net.*
| 类型 |
构造函数 |
关键方法 |
TcpSocket |
TcpSocket(String, UInt16) |
connect(), read(Array<Byte>): Int64, write(Array<Byte>), close() |
TcpServerSocket |
TcpServerSocket(bindAt: UInt16) |
bind(), accept(): TcpSocket, close() |
UdpSocket |
UdpSocket(bindAt: UInt16) |
sendTo(Array<Byte>, SocketAddress), receiveFrom(Array<Byte>), close() |
UnixSocket |
UnixSocket(String) |
Unix Domain Socket 通信 |
10. sync — 并发同步
导入:import std.sync.*
10.1 原子类型
| 类型 |
构造函数 |
关键方法 |
AtomicInt8 ~ AtomicInt64 |
AtomicInt64(Int64) |
load(), store(v), swap(v), compareAndSwap(old, new), fetchAdd(v), fetchSub(v), fetchAnd(v), fetchOr(v), fetchXor(v) |
AtomicUInt8 ~ AtomicUInt64 |
AtomicUInt64(UInt64) |
同上 |
AtomicBool |
AtomicBool(Bool) |
load(), store(v), swap(v), compareAndSwap(old, new) |
AtomicReference<T> |
AtomicReference<T>(T) |
load(), store(v), swap(v), compareAndSwap(old, new) |
AtomicOptionReference<T> |
AtomicOptionReference<T>(?T) |
load(), store(v), swap(v), compareAndSwap(old, new) |
10.2 锁与同步
| 类型 |
构造函数 |
关键方法 |
备注 |
Mutex |
Mutex() |
lock(), unlock(), tryLock(): Bool |
互斥锁 |
Barrier |
Barrier(Int64) |
wait() |
屏障同步 |
Semaphore |
Semaphore(Int64) |
acquire(), release(), tryAcquire(): Bool |
信号量 |
ReadWriteLock |
ReadWriteLock() |
readLock(), readUnlock(), writeLock(), writeUnlock() |
读写锁 |
SyncCounter |
SyncCounter(Int64) |
dec(), waitUntilZero() |
同步计数器 |
Timer |
Timer() |
— |
定时器 |
Monitor |
Monitor() |
enter(), leave(), wait(), notify(), notifyAll() |
⚠️ 已弃用 |
ReentrantMutex |
ReentrantMutex() |
lock(), unlock(), tryLock(): Bool(可重入) |
⚠️ 已弃用 |
10.3 同步接口
| 接口 |
说明 |
Lock |
锁接口(lock(), unlock(), tryLock()) |
Condition |
条件变量接口 |
11. time — 时间日期
导入:import std.time.*
| 类型 |
分类 |
构造函数 / 工厂方法 |
关键方法 |
DateTime |
结构体 |
DateTime.now(), DateTime.of(year, month, dayOfMonth, ...) |
toString(String), +/- Duration 运算, year/month/dayOfMonth 等属性 |
MonoTime |
— |
MonoTime.now() |
单调时间,适合计时(MonoTime.now() - start 返回 Duration) |
TimeZone |
— |
TimeZone.local, TimeZone.utc, TimeZone.of(String) |
时区 |
DateTimeFormat |
— |
DateTimeFormat(String) |
日期时间格式化/解析 |
12. math — 数学运算
导入:import std.math.*
| 函数 |
签名 |
说明 |
abs |
abs<T>(T): T |
绝对值 |
sqrt |
sqrt(Float64): Float64 |
平方根 |
pow |
pow(Float64, Float64): Float64 |
幂 |
log / log2 / log10 |
log(Float64): Float64 |
对数 |
ceil / floor / round |
ceil(Float64): Float64 |
取整 |
sin / cos / tan |
sin(Float64): Float64 |
三角函数 |
asin / acos / atan |
asin(Float64): Float64 |
反三角函数 |
gcd |
gcd(Int64, Int64): Int64 |
最大公约数 |
lcm |
lcm(Int64, Int64): Int64 |
最小公倍数 |
clamp |
clamp(T, T, T): T |
限制在范围内 |
math.numeric — 扩展数值
导入:import std.math.numeric.*
| 类型 |
构造函数 |
说明 |
BigInt |
BigInt(String), BigInt(Int64) |
任意精度整数,支持 +/-/*///% |
Decimal |
Decimal(String), Decimal(Float64) |
任意精度十进制数 |
13. random — 随机数
导入:import std.random.*
| 方法 |
签名 |
说明 |
| 构造 |
Random(), Random(seed: UInt64) |
无种子 / 指定种子 |
nextInt8 ~ nextInt64 |
nextInt64(): Int64 |
随机有符号整数 |
nextUInt8 ~ nextUInt64 |
nextUInt64(): UInt64 |
随机无符号整数 |
nextFloat16 ~ nextFloat64 |
nextFloat64(): Float64 |
[0.0, 1.0) 随机浮点 |
nextGaussianFloat64 |
nextGaussianFloat64(Float64, Float64): Float64 |
高斯分布随机数(均值、标准差) |
nextBool |
nextBool(): Bool |
随机布尔 |
14. regex — 正则表达式
导入:import std.regex.*
| 方法 |
签名 |
说明 |
| 构造 |
Regex(String) |
编译正则表达式 |
find |
find(String): ?MatchData |
查找第一个匹配 |
findAll |
findAll(String): Iterator<MatchData> |
查找所有匹配 |
fullMatch |
fullMatch(String): Bool |
完整匹配检查 |
replace |
replace(String, String): String |
替换匹配内容 |
split |
split(String): Array<String> |
按匹配分割 |
15. sort — 排序
导入:import std.sort.*
| 函数 |
签名 |
说明 |
sort |
sort<T>(Array<T>) where T <: Comparable<T> |
默认排序(默认不稳定) |
sort |
sort<T>(Array<T>, (T, T) -> Ordering) |
自定义比较器排序 |
sort |
sort<T>(Array<T>, (T, T) -> Bool) |
自定义 lessThan 排序 |
sort |
sort<T, K>(Array<T>, key!: (T) -> K) where K <: Comparable<K> |
按键排序 |
sort |
同上各形式也支持 ArrayList<T> 和 List<T> |
稳定排序可传 stable!: true |
16. convert — 类型转换与格式化
导入:import std.convert.*
| 接口 / 方法 |
签名 |
说明 |
Parsable<T> |
T.parse(String): T |
字符串→数值(失败抛 IllegalArgumentException) |
Parsable<T> |
T.tryParse(String): ?T |
字符串→数值(失败返回 None) |
Formattable |
format(String): String |
数值格式化(十六进制 "x"、对齐 ">10" 等) |
支持的类型:Bool、Int8Int64、UInt8UInt64、Float16~Float64、Rune
17. process — 进程管理
导入:import std.process.*
| 函数 / 类 |
签名 |
说明 |
execute |
execute(String, Array<String>): Int64 |
执行命令并等待,返回退出码 |
executeWithOutput |
executeWithOutput(String, Array<String>): (Int64, Array<Byte>, Array<Byte>) |
执行命令并捕获 stdout/stderr(字节数组) |
launch |
launch(String, Array<String>): SubProcess |
异步启动子进程 |
findProcess |
findProcess(Int64): Process |
按 PID 查找进程 |
Process |
pid, name, command, isAlive() |
进程信息类 |
SubProcess |
stdInPipe, stdOutPipe, stdErrPipe, wait(), waitOutput() |
子进程类(继承 Process) |
18. argopt — 命令行参数解析
导入:import std.argopt.*
| 类型 / 函数 |
签名 |
说明 |
parseArguments |
parseArguments(Array<String>, Array<ArgumentSpec>): ParsedArguments |
解析命令行参数 |
ArgumentSpec.Short |
Short(Rune, ArgumentMode) |
短选项规范(如 -v) |
ArgumentSpec.Long |
Long(String, ArgumentMode) |
长选项规范(如 --verbose) |
ArgumentSpec.Full |
Full(String, Rune, ArgumentMode) |
同时定义长短选项 |
ArgumentMode |
NoValue / RequiredValue / OptionalValue |
选项参数模式 |
ParsedArguments |
options: ReadOnlyMap<String, String>, nonOptions: Array<String> |
解析结果 |
19. deriving — 自动派生
导入:import std.deriving.*
| 宏 |
用法 |
说明 |
@Derive |
@Derive[ToString, Hashable, Equatable] |
自动生成接口实现,适用于 struct/class/enum |
@DeriveExclude |
标注成员 |
排除某些成员不参与派生 |
@DeriveInclude |
标注成员 |
仅包含某些成员参与派生 |
@DeriveOrder |
标注成员 |
指定成员参与派生的顺序 |
可派生的接口:ToString、Hashable、Equatable、Comparable
20. reflect — 反射
导入:import std.reflect.*
| 类型 |
关键方法 |
说明 |
TypeInfo |
name, qualifiedName |
类型元信息基类 |
ClassTypeInfo |
members, methods, properties |
类的类型信息 |
StructTypeInfo |
members, methods, properties |
结构体的类型信息 |
InterfaceTypeInfo |
methods |
接口的类型信息 |
InstanceVariableInfo |
name, type, getValue(Any), setValue(Any, Any) |
实例变量信息 |
InstanceFunctionInfo |
name, parameters, apply(Any, ...) |
实例方法信息 |
InstancePropertyInfo |
name, type, getValue(Any), setValue(Any, Any) |
实例属性信息 |
ConstructorInfo |
name, parameters, apply(...) |
构造函数信息 |
PackageInfo |
name, types |
包信息 |
21. 其他包速查
binary — 二进制端序
导入:import std.binary.*
| 接口 |
说明 |
BigEndianOrder |
大端序 |
LittleEndianOrder |
小端序 |
crypto.digest — 摘要算法
导入:import std.crypto.digest.*
| 接口 / 类型 |
说明 |
Digest |
摘要接口:write(Array<Byte>), finish(): Array<Byte>, reset(), size, blockSize |
MD5 |
MD5 摘要 |
SHA1 |
SHA-1 摘要 |
SHA256 |
SHA-256 摘要 |
SHA512 |
SHA-512 摘要 |
SM3 |
国密 SM3 |
HMAC |
HMAC 消息认证码 |
overflow — 溢出处理
导入:import std.overflow.*
| 策略 |
说明 |
| Option 返回 |
溢出返回 None |
| 饱和(saturating) |
溢出取边界值 |
| 抛异常(throwing) |
溢出抛 OverflowException |
| 截断(truncating) |
溢出截断 |
ref — 弱引用
导入:import std.ref.*
| 类型 |
说明 |
WeakRef<T> (where T <: Object) |
弱引用。属性:value: Option<T>(获取引用对象),clear() 清除引用 |
objectpool — 对象池 ⚠️ 已弃用
导入:import std.objectpool.*
| 类型 |
说明 |
ObjectPool<T> |
缓存与复用对象,减少分配开销 |
22. 最佳实践
| 场景 |
建议 |
| 资源管理 |
使用 try (res = ...) { } 自动关闭 File 等 Resource 对象 |
| 集合选择 |
随机访问用 ArrayList,键值查找用 HashMap,有序映射用 TreeMap,有序集合用 TreeSet,并发用 ConcurrentHashMap |
| 并发编程 |
优先 synchronized(mtx) { };简单计数用 Atomic;用 Future.get() 等待结果 |
| 错误处理 |
用 ?T 表示可缺失值,?? 提供默认值,?. 安全链式调用 |
| I/O 性能 |
用 BufferedInputStream/BufferedOutputStream 包装原始流,写完调 flush() |
| 字符串 |
用 "${expr}" 插值;大量拼接用 StringBuilder;for (c in s.runes()) 迭代字符 |