检查映射中是否存在密钥



我在solidity中有一个映射。如何检查此映射中是否存在密钥。如果我尝试访问不存在的键,映射将返回数据类型的默认值。

有什么优雅的方法可以达到同样的效果吗。

没有办法做到这一点,因为如果没有设置值,就会有默认值(false、0等(。最好的方法是检查该值是否与默认值不同

除了检查有问题的键是否初始化了值之外,没有其他方法可以做到这一点。

如果您需要更多(例如,能够跟踪哪些键设置了值、计数、列出值等(,那么一种相当常见的模式是在映射旁边维护一个数组,其中包含已知的键。

这样,当你只需要值(或者检查它的存在(时,你可以查询映射,这是非常有效的。当您想使用一组已知的键执行某些操作时,可以与数组进行交互。

最新更新