Solidity
從映射中刪除條目與將其設置為零
在大多數 ERC721
setApprovalForAll()
實現中,要撤銷批准,映射設置為 0,而不是刪除條目。我想知道如果許多使用者取消了很多批准會發生什麼情況,刪除不會在映射中節省大量儲存空間嗎?將其放入程式碼中,看起來我有一個映射:
mapping(address => mapping(address => bool)) private _operatorApprovals;
delete _operatorApprovals[owner][operator];
和有什麼區別_operatorApprovals[owner][operator] = 0;
先感謝您。
更新/回答
delete _operatorApprovals[owner][operator]
是一樣的,_operatorApprovals[owner][operator] = 0
因為Solidity裡面沒有null
值,把值設置為0和刪除是一樣的。
在 Solidity 中也是如此。刪除值或將值設置為 0