Icon LinkStdString

可以使用 StdString 类型表示可变长度的动态字符串,也称为标准库字符串或 std-lib-string。它在大多数语言中的行为类似于动态字符串,实质上是一个字符数组。

// #import { StdString };
 
const stdString: StdString = 'Hello World';
 
const { value } = await contract.functions.string_comparison(stdString).simulate();
 
expect(value).toBeTruthy();

Icon Link使用 StdString

StdString 类型可以与您的合约调用集成。考虑以下可以比较并返回字符串的合约:

contract;
 
use std::string::String;
 
abi StdStringTest {
    fn echo_string(value: String) -> String;
    fn string_comparison(value: String) -> bool;
}
 
impl StdStringTest for Contract {
    fn echo_string(value: String) -> String {
        value
    }
 
    fn string_comparison(value: String) -> bool {
        let expected = String::from_ascii_str("Hello World");
 
        value.as_bytes() == expected.as_bytes()
    }
}

可以使用原生 JavaScript 字符串来创建字符串,并发送到 Sway 合约:

// #import { StdString };
 
const stdString: StdString = 'Hello Fuel';
 
const { value } = await contract.functions.echo_string(stdString).simulate();
 
expect(value).toEqual(stdString);