【问题标题】:What does T represent in a Pallet?托盘中的 T 代表什么?
【发布时间】:2021-12-17 09:30:44
【问题描述】:

所以每个托盘类型都有或多或少相同的声明:pub struct Pallet<T>(_)pub struct Pallet<T>(PhantomData<T>) 其中T: Config。我的问题是T 代表什么?有人提到T代表了substrate runtime,这让我产生疑问,如果一个节点有多个正在运行的pallet,它们是否都共享T的相同定义?

【问题讨论】:

    标签: substrate


    【解决方案1】:

    T 是一个泛型类型,代表您的链的整个运行时配置。

    基材设计为模块化和可配置的,因此我们允许根据您的需求完全配置每个托盘。

    一个简单的例子是,我们不假设您使用哪种类型作为您的链的块号。在整个代码中,块号类型是通用的,可以被T::Number 类型引用。

    在某些时候,需要具体定义泛型类型,这发生在运行时配置中。这个T 泛型类型被传递给所有托盘,以便共享这些具体类型的实际内容,并最终让一切正常工作。

    查看此存储库以获取有关如何将具体类型转换为泛型类型的有用示例,然后T 语法是如何产生的将一目了然:

    https://www.youtube.com/watch?v=6cp10jVWNl4

    https://github.com/shawntabrizi/substrate-trait-tutorial

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-20
      • 2016-05-27
      • 2018-11-23
      • 2016-06-10
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 2013-08-13
      相关资源
      最近更新 更多