菜单

Sway 标准库

相关源文件

Sway 标准库是核心类型、特性和函数的集合,为 Sway 程序提供了基本功能。它提供了原语、集合、错误处理、区块链交互工具等,以支持 Fuel 平台上的开发。

本页提供了标准库的组织结构和关键组件的概述。有关编译器和语言本身的信息,请参阅Sway 编译器

库组织结构

Sway 标准库被组织成一系列模块,提供不同的功能类别。库的入口点位于 sway-lib-std/src/lib.sw 文件中,该文件导入并公开所有模块。

来源:sway-lib-std/src/lib.sw1-58 sway-lib-std/src/prelude.sw1-52

序言(Prelude)

Sway 标准库包含一个序言模块,它会自动将基本类型和函数导入到每个 Sway 程序中。这使得无需显式导入语句即可使用常用功能。

来源:sway-lib-std/src/prelude.sw1-52

核心数据类型

基本类型

标准库通过额外功能扩展了 Sway 的内置原始类型。它还包括自定义实现,如 U128,用于处理比原生类型支持的更大整数。

U128 实现

U128 类型提供了一个 128 位无符号整数实现,表示为两个 64 位组件。

来源:sway-lib-std/src/u128.sw1-1034

集合类型

Vec

Vec<T> 类型提供了一个动态大小的数组,用于管理项目集合。它是一个堆分配的结构,可以根据需要增长。

来源:sway-lib-std/src/vec.sw1-908

Bytes

Bytes 类型表示原始字节的集合,提供了高效的字节操作。

来源:sway-lib-std/src/bytes.sw1-1066

字符串

String 类型提供 UTF-8 编码的字符串功能,构建在 Bytes 类型之上。

来源:sway-lib-std/src/string.sw1-224

错误处理类型

Sway 标准库提供了两种核心错误处理类型:Option<T>Result<T, E>

选项

Option<T> 表示一个可选值,可以是 Some(T)None

来源:sway-lib-std/src/option.sw1-326

结果

Result<T, E> 表示成功值 (Ok(T)) 或错误 (Err(E))。

来源:sway-lib-std/src/result.sw1-275

区块链交互

存储

存储模块提供与链上合约存储交互的实用工具。

来源:sway-lib-std/src/storage.sw1-11

身份验证

认证模块提供用于验证交易签名者和合约调用者的函数。

来源:test/src/sdk-harness/test_projects/auth/mod.rs1-597

断言和错误处理

标准库提供了断言和错误处理机制。

来源:sway-lib-std/src/assert.sw1-125 sway-lib-std/src/revert.sw1-89 sway-lib-std/src/error_signals.sw1-26

使用示例

集合类型

使用 Vec

使用 Bytes

错误处理

使用 Option

使用 Result<T, E>

总结

Sway 标准库为 Fuel 平台上的开发提供了丰富的工具和抽象。它包括核心数据类型、集合工具、错误处理机制和特定于区块链的功能。

该库设计为模块化,组件被组织成逻辑上分离的模块。序言模块确保最常用的类型和函数无需显式导入即可使用。

无论您是处理集合、处理错误还是与区块链存储交互,标准库都为 Sway 开发提供了基本构建块。

来源:sway-lib-std/src/lib.sw1-58 sway-lib-std/src/prelude.sw1-52