Dictionary 需要锈图语法解释

Dictionary 需要锈图语法解释,dictionary,rust,substrate,Dictionary,Rust,Substrate,最近开始学习Rust,我在语法方面遇到了一些问题。 谁能给我解释一下这句话: // Stores all the kitties, key is the kitty id / index pub Kitties get(fn kitties): map hasher(blake2_128_concat) u32 => Option<Kitty>; 我们在这里创建了一个公共Kittiesvariable,它接受一些函数。 Kitties属于map hasherblake2_1

最近开始学习Rust,我在语法方面遇到了一些问题。 谁能给我解释一下这句话:

// Stores all the kitties, key is the kitty id / index

pub Kitties get(fn kitties): map hasher(blake2_128_concat) u32 => Option<Kitty>;
我们在这里创建了一个公共Kittiesvariable,它接受一些函数。 Kitties属于map hasherblake2_128_concat u32类型,返回选项


地图散列器?在文档中也找不到hasher。

根据您在注释中发布的链接,代码段是一个更大的代码段的一部分,类似于

decl_storage! {
    trait Store for Module<T: Trait> as SimpleMap {
        SimpleMap get(fn simple_map): map hasher(blake2_128_concat) T::AccountId => u32;
    }
}
decl_仓库!调用是一个宏宏调用总是以感叹号结束,就像vec!或者println!,从本质上说,这意味着它可以用它后面的东西做任何它想做的事情。特别是,外部支架内的东西不必是有效的锈迹,因为它们是decl_存储!可以自由转换内容


我猜在谷歌上快速搜索的是decl_存储!引用,因此您必须参考它的文档才能看到它所期望的内容。

根据您在注释中发布的链接,该代码段是类似于

decl_storage! {
    trait Store for Module<T: Trait> as SimpleMap {
        SimpleMap get(fn simple_map): map hasher(blake2_128_concat) T::AccountId => u32;
    }
}
decl_仓库!调用是一个宏宏调用总是以感叹号结束,就像vec!或者println!,从本质上说,这意味着它可以用它后面的东西做任何它想做的事情。特别是,外部支架内的东西不必是有效的锈迹,因为它们是decl_存储!可以自由转换内容


我猜在谷歌上快速搜索的是decl_存储!引用,因此您必须参考其文档以了解其预期内容。

这是一条宏规则。而不是语法

看看这个:

如果您想了解有关基板中映射存储类型的更多信息,请检查此项,它还解释了hasher是什么:
这是一条宏规则。而不是语法

看看这个:

如果您想了解有关基板中映射存储类型的更多信息,请检查此项,它还解释了hasher是什么:

这看起来不像有效的Rust语法,这是从哪里来的?这绝对不是有效的Rust。它看起来像是在尝试有效的生锈,因此您可能没有错误识别语言,但它肯定不会按原样工作。它是从Substrate开始的,看起来它发生在宏内部,这基本上意味着任何事情都会发生。你必须继续阅读文档才能找出问题所在。@SilvioMayolo我建议将其作为答案发布。这看起来不像有效的生锈语法,这是从哪里来的?这绝对不是有效的生锈。它看起来像是在尝试有效的生锈,因此您可能没有错误识别语言,但它肯定不会按原样工作。它是从Substrate开始的,看起来它发生在宏内部,这基本上意味着任何事情都会发生。你必须继续阅读文档才能弄清楚到底是怎么回事。@SilvioMayolo我建议你把它作为一个答案发布出来。