1

我克隆了这个模板。有这样的代码:

decl_storage! {
    trait Store for Module<T: Trait> as TemplateModule {
        Something get(fn something): Option<u32>;
    }
}

是什么Something get(fn something): Option<u32>;意思?尤其是Something之前是什么get(fn something)

4

1 回答 1

1

显然,此宏接受自定义语法,如https://substrate.dev/rustdocs/v2.0.0-rc5/frame_support/macro.decl_storage.html中所述:

基本存储可以这样扩展:

#vis #name get(fn #getter) config(#field_name) build(#closure): #type = #default;

  • #vis:设置结构的可见性。酒吧或什么都没有。
  • #name:存储项的名称,在存储中用作前缀。
  • [可选] get(fn #getter):将函数#getter 实现到模块。
  • [可选] config(#field_name):如果设置了 get,则 field_name 是可选的。将在 GenesisConfig 中包含该项目。
  • [可选] build(#closure):使用存储覆盖调用闭包。
  • #type:存储类型。
  • [可选] #default:无时返回值。

所以 in yourSomething是存储项的名称,用作存储中的前缀。

于 2020-08-06T08:30:07.823 回答