我正在阅读ERC721A可升级ERC721AStorage.sol的实现,并找到了这一功能
function layout() internal pure returns (Layout storage l) {
bytes32 slot = STORAGE_SLOT;
assembly {
l.slot := slot
}
}我特别想知道l.slot的情况。我猜想slot属性在与存储槽相关联的尤尔中有一个特殊的含义,但我不知道这是否正确。我在哪里可以了解到这是如何工作的?我在https://docs.soliditylang.org/en/latest/yul.html上读了一遍,没有看到任何与此相关的东西,但也许我漏掉了什么?
编辑:这个例子演示了如何使用插槽来存储和检索,但我仍然没有找到任何文档或对此有一个很好的解释。
发布于 2022-10-03 22:34:01
槽是用来描述Yul中堆栈和存储位置的单词。您可以查看此资源,以了解更多有关插槽工作方式的信息:
https://docs.soliditylang.org/en/v0.8.13/assembly.html#memory-safety
https://ethereum.stackexchange.com/questions/136823
复制相似问题