例如,当将一个大整数映射到某个整数时,
uint[] index;
index.length = 1000000;
index[600001] = 4;用起来更便宜吗?
mapping(uint => uint) index;
index[600001] = 4;?使用uint[]的好处之一是它可以被删除,恰好在我工作的dApp中很有用。
发布于 2018-11-14 22:29:04
他们将是一样的,只要做一个修改。
你会去
uint[1000000] index;
// index.length = 1000000; not needed您使用的动态索引只比建议的固定长度数组稍微贵一些,因为它需要另一个32字节的字来表示数组长度和设置它的额外步骤。
这两种方法都使用一个32字节的键指向一个32字节的单词.这两种方法都将避免不必要地写入,并且在尚未写入的索引中值默认为0。
这两种方法都不能从降低指向值的精度(例如,uint8)中获益,因为32字节的单词是它们所能寻址的最小空间。
希望能帮上忙。
https://ethereum.stackexchange.com/questions/62377
复制相似问题