Ich habe eine Zuordnung wie folgt:
struct data {
string name;
string nickname;
}
mapping(address => data) public user;
Was ist der richtige Weg, um ein Element aus der Variable user zu löschen? Muss ich nur anrufendelete(user[address])
oder
muss ich auch löschen user[address].name
und user[address].nickname
?
Ja, delete user[someAddress];
funktioniert mit Strukturen, die keine Zuordnung enthalten.
Da name
und nickname
keine Zuordnungen sind, werden sie für diese Frage automatisch gelöscht (auf Null gesetzt): Es ist nicht erforderlich, etwas wie "delete user[someAddress].name" zu tun.
http://solidity.readthedocs.io/en/develop/types.html#delete
Wenn Sie eine Struktur löschen, werden alle Elemente zurückgesetzt, die keine Zuordnungen sind, und auch in die Elemente rekursiv, es sei denn, es handelt sich um Zuordnungen
Vorbehalt:
delete hat keine Auswirkung auf ganze Zuordnungen (da die Schlüssel von Zuordnungen beliebig sein können und im Allgemeinen unbekannt sind)
Hummel
eth
Jaime
eth
Qwerty
eth