⌘K

Icon LinkVectors

Icon Link传递向量

你可以透明地将 Rust 的std::vec::Vec传递到你的合约方法中。以下代码调用了一个接受Vec<SomeStruct<u32>>的 Sway 合约方法。

let arg = vec![SomeStruct { a: 0 }, SomeStruct { a: 1 }];
methods.struct_in_vec(arg.clone()).call().await?;

你可以像使用任何其他类型一样使用向量--例如[Vec<u32>; 2]SomeStruct<Vec<Bits256>>等。

Icon Link返回向量

从合约方法返回向量是支持的,但有一个限制,就是你不能将它们嵌套在另一个类型内部。这个限制是暂时的。

let response = contract_methods.u8_in_vec(10).call().await?;
assert_eq!(response.value, (0..10).collect::<Vec<_>>());
Icon InfoCircle

注意:你仍然可以与包含返回向量嵌套在另一个类型内部的方法的合约进行交互,只是不能与方法本身进行交互