需要 Rust Map 语法解释
Rust Map Syntax Explanation Needed
最近开始学习 Rust,我在语法方面遇到了一些问题。
谁能给我解释一下这一行:
// Stores all the kitties, key is the kitty id / index
pub Kitties get(fn kitties): map hasher(blake2_128_concat) u32 => Option<Kitty>;
所以我们在这里创建 public 接受某些功能的小猫(变量)。
Kitties 是一种类型 map hasher(blake2_128_concat) u32 which returns Option
地图散列器?在文档中也找不到散列器。
根据您在评论中发布的 link,该代码片段是更大片段的一部分,类似于
decl_storage! {
trait Store for Module<T: Trait> as SimpleMap {
SimpleMap get(fn simple_map): map hasher(blake2_128_concat) T::AccountId => u32;
}
}
decl_storage!
调用是一个宏(宏调用总是以感叹号结尾,如vec!
或println!
),本质上就是可以为所欲为和它后面的东西。特别是,外括号内的东西不需要是有效的 Rust,因为 decl_storage!
可以自由转换内容。
我的猜测(通过快速 Google 搜索)是 decl_storage!
指的是 this macro,因此您必须参考其文档以了解它的期望。
这是一个宏规则。不是原始 Rust 语法。
看看这个:https://substrate.dev/rustdocs/v3.0.0/frame_support/macro.decl_storage.html
如果你想了解更多关于 Substrate 中 Map 存储类型的信息,请检查这个,它还解释了什么是 hasher:
https://substrate.dev/recipes/storage-maps.html
最近开始学习 Rust,我在语法方面遇到了一些问题。 谁能给我解释一下这一行:
// Stores all the kitties, key is the kitty id / index
pub Kitties get(fn kitties): map hasher(blake2_128_concat) u32 => Option<Kitty>;
所以我们在这里创建 public 接受某些功能的小猫(变量)。 Kitties 是一种类型 map hasher(blake2_128_concat) u32 which returns Option
地图散列器?在文档中也找不到散列器。
根据您在评论中发布的 link,该代码片段是更大片段的一部分,类似于
decl_storage! {
trait Store for Module<T: Trait> as SimpleMap {
SimpleMap get(fn simple_map): map hasher(blake2_128_concat) T::AccountId => u32;
}
}
decl_storage!
调用是一个宏(宏调用总是以感叹号结尾,如vec!
或println!
),本质上就是可以为所欲为和它后面的东西。特别是,外括号内的东西不需要是有效的 Rust,因为 decl_storage!
可以自由转换内容。
我的猜测(通过快速 Google 搜索)是 decl_storage!
指的是 this macro,因此您必须参考其文档以了解它的期望。
这是一个宏规则。不是原始 Rust 语法。
看看这个:https://substrate.dev/rustdocs/v3.0.0/frame_support/macro.decl_storage.html
如果你想了解更多关于 Substrate 中 Map 存储类型的信息,请检查这个,它还解释了什么是 hasher: https://substrate.dev/recipes/storage-maps.html