要求(newKittenId == uint256(uint32(NewKittenId)的含义是什么?
完成相关守则:
uint256 newKittenId = kitties.push(_kitty) - 1;
// It's probably never going to happen, 4 billion cats is A LOT, but
// let's just be 100% sure we never let this happen.
require(newKittenId == uint256(uint32(newKittenId)));发布于 2018-12-20 16:01:31
确保newKittenId < 2 ** 32。
也可以通过将newKittenId声明为uint32来实现这一点。
将其声明为uint256的一个可能原因是性能优化。
在编辑之后,很清楚为什么newKittenId被声明为uint256,因为push返回数组的长度,数组的类型是uint256。然而,作者希望确保这个实际长度永远不会到达2 ** 32 (在这种尝试中恢复操作)。
https://ethereum.stackexchange.com/questions/64399
复制相似问题