我了解当查询 Storage 以获取不存在的键时,Substrate 将返回 0 或 null 值。它对 Option 类型有什么特别的作用吗?
我问是因为在默认节点模板中,存储项目 Something 被声明为
Something: Option<u32>;
但稍后在do_something
setter 中,方法签名声明something: u32
,但直接传递它而不将其包装在Some()
:
Something::put(something);
代替
Something::put(Some(something));
如果 Substrate 将对 store 的调用解释T
为 storage Some<T>
,这是否也意味着如果我None
针对某个键存储在映射中,那么它将删除该键?是存储Some(T)
还是T
?
或者仅仅是 Rust 正在为Something::put(some: T)
case 和构建一个专门的方法调用Something::put(some: Option<T>)
?