链接 - Url
Url 是 Sui Move 库中提供的一种方便的类型,用于明确标记结构体中的字段或函数的参数为 URL。这对于 Move 语言来说很有用,因为它可以理解字段的类型,并在字段使用不当时提供更好的错误消息。开发者应尽可能将存储值用作 Url 或接受 Url 参数。请注意,交易不能将 Url 作为参数传递,因此 Url 应仅用作非用户直接调用的函数的参数。
public struct MyStruct {
url: Url,
}
public fun take_url(url: Url) {
// ...
}
Url 可以使用 new_unsafe
函数创建,该函数接受一个字符串作为参数。此函数不会验证字符串,因此开发者有责任确保字符串是一个有效的 URL。new_unsafe_from_bytes
函数也可以用来从字节向量创建一个 Url。如果字节不是有效的 ASCII,这个函数将中止。
use 0x1::sui::url;
public fun main() {
let url = url::new_unsafe(b"https://example.com");
let url_bytes = vector::from_hex("68747470733a2f2f6578616d706c652e636f6d");
let url_from_bytes = url::new_unsafe_from_bytes(url_bytes);
}
inner_url
函数可以用于从 Url 获取内部 URL 作为字符串。update
函数可以用于更新 Url 的内部 URL。
use 0x1::sui::url;
let url = url::new_unsafe(b"https://example.com");
let inner_url = url::inner_url(&url);
一个 Url 可以使用 update 函数进行更新。此函数接受一个对 Url 的可变引用和一个字符串作为参数。该字符串将替换 Url 的内部 URL。
use 0x1::sui::url;
let url = url::new_unsafe(b"https://example.com");
url::update(&mut url, b"https://example2.org");