在 Sway 中,元组是固定长度的异构元素集合。元组可以存储多种数据类型,包括基本类型、结构体和枚举。本指南将演示如何在 TypeScript 中表示和处理元组,并与接受元组作为参数的合约函数进行交互。
在 TypeScript 中,您可以使用指定类型的数组来表示 Sway 元组,每个元素的类型都不同:
// Sway let tuple2: (u8, bool, u64) = (100, false, 10000);
const tuple: [number, boolean, number] = [100, false, 10000];
在这个示例中,Typescript 的 tuple
变量包含三个不同类型的元素:一个数字、一个布尔值和另一个数字。
让我们考虑一个接受元组作为参数并返回相同元组的合约函数:
fn echo_tuple(tuple: (u8, bool, u64)) -> (u8, bool, u64) {
tuple
}
要使用 SDK 执行和验证合约函数,请按照以下步骤进行:
const tuple: [number, boolean, number] = [100, false, 10000];
const { value } = await contract.functions.echo_tuple(tuple).simulate();
expect(tuple).toEqual([value[0], value[1], new BN(value[2]).toNumber()]);
在这个示例中,我们创建了一个包含三个元素的元组,调用了 echo_tuple
合约函数,并期望返回的元组与原始元组相匹配。请注意,我们使用 new BN(value[2]).toNumber()
将返回的元组的第三个元素转换为数字。
Sway 中的元组提供了一种方便的方式来存储和操作异构元素的集合。了解如何在 TypeScript 和 Sway 合约中表示和处理元组将使您能够创建更多样化和表达力强的代码。