Solidity
刪除與分配給預設值
如果我有一個包含許多客戶帳戶的結構:
bytes32[] public customerID; mapping(bytes32 => CustomerAccounts) public customerAccounts; struct CustomerAccounts{ address customer; uint balance; }
要刪除結構中的客戶帳戶,最好分配一組預設值,如下所示:
CustomerAccounts memory blank; customerAccounts[customerID] = blank;
或使用刪除,如下所示:
delete customerAccounts[customerID];
還是真的不重要?
雖然氣體的差異很小,< 1000,但我懷疑在前一種情況下,它可能仍然以某種可能導致問題的幽靈形式存在。
第二種選擇更好,它更清潔,更高效。它將結構的所有字節設置為零,並使程式碼更易於維護。